属性上的谓词

本文关键字:谓词 属性 | 更新日期: 2023-09-27 18:27:42

我有一个List<B>,类B有一个公共属性A

如何使用Predicate<A>筛选B的列表?

属性上的谓词

如果你的列表名为myList,而你的谓词为myPredicate则你可能想要这样的东西:

var result = myList.Where(b => myPredicate(b.A))

或者您可以使用lambda表达式,例如:

var result = myList.Where(b => b.A < 10)

或者类似的东西,其中谓词将是b.A < 10

也许你应该给我们一个更完整的代码示例。

如果您使用Linq,您可以执行以下操作:

// Define the predicate inline:
var results = list.Where(b => b.A.Name == "Fred");
// or if you have the predicate defined separately:
var results = list.Where(b => predicate(b.A));

如果不使用Linq,则可以在System.Collections.Generic.List类上使用FindAll方法:

var results = list.FindAll(predicate);
list.Where(i=>i.B == "something")