我的方法如下
IEnumerable<T> All(Func<T, bool> filter);
如何在我们的函数中使用过滤器参数?
var arr = new[] { 1, 2, 3, 4 };
Func<int, bool> func = i => i > 0; // makes sure all numbers are greater than 0
bool b = arr.All(func); // returns true
就像是
listitems.All(l=> l.value == data);
即它将作为参数传递的 lambda 表达式
注意:这里的 listitem 是集合 ...它是从实现 IEnumerable 的类创建的,即它的列表、数组,其他你可以在 msdn 上查看
从文档中,您可以看到 filter 应该是一个函数,它接受一个类型的参数T
并返回一个bool
.
所以我认为该All
方法将该filter
函数应用于集合的所有元素,并返回那些返回的元素filter
,true
或者类似的东西。
另一种选择是根据过滤器测试集合并仅在所有项目都与过滤器匹配时才返回 true 的方法。
有一个模型:
class Person {
public property Name {get; set;}
}
和一个像这样的集合:
List<Person> personRepo;
您可以过滤您的列表,例如:
var searchResults = personRepo.All(p => p.Name == "Frank Borland")