我有List<B>
,而班级B
有公共财产A
。
如何使用B
?
Predicate<A>
列表
答案 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")