1

我的方法如下

IEnumerable<T> All(Func<T, bool> filter);

如何在我们的函数中使用过滤器参数?

4

4 回答 4

1
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
于 2013-01-17T06:46:06.417 回答
1

就像是

listitems.All(l=> l.value == data);

即它将作为参数传递的 lambda 表达式

注意:这里的 listitem 是集合 ...它是从实现 IEnumerable 的类创建的,即它的列表、数组,其他你可以在 msdn 上查看

于 2013-01-17T06:38:10.997 回答
1

文档中,您可以看到 filter 应该是一个函数,它接受一个类型的参数T并返回一个bool.

所以我认为该All方法将该filter函数应用于集合的所有元素,并返回那些返回的元素filtertrue或者类似的东西。

另一种选择是根据过滤器测试集合并仅在所有项目都与过滤器匹配时才返回 true 的方法。

于 2013-01-17T06:39:55.563 回答
0

有一个模型:

    class Person {

        public property Name {get; set;}
    }

和一个像这样的集合:

    List<Person> personRepo;

您可以过滤您的列表,例如:

    var searchResults = personRepo.All(p => p.Name == "Frank Borland")
于 2013-01-17T06:47:50.160 回答