对财产的谓词

时间:2012-03-12 12:25:01

标签: c# list predicate

我有List<B>,而班级B有公共财产A

如何使用B

过滤Predicate<A>列表

3 个答案:

答案 0 :(得分:5)

如果您的列表名为 myList ,而您的谓词 myPredicate ,那么您可能需要这样的内容:

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

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

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

或类似的内容,其中谓词为b.A < 10

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

答案 1 :(得分:3)

如果您使用的是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);

答案 2 :(得分:0)

list.Where(i=>i.B == "something")