我想谈谈LINQ,并想提一下查询集合是如何工作的。回到.Net 1.1,我似乎记得有一个方法(Find()可能吗?),你将传递另一个方法的地址,该方法将询问集合中的每个项目并确定它是否应该包含在过滤的集合中。
我完全记错了吗?它坚持我,因为语法在当时是不寻常的。
我认为它是这样的:
public bool ContainsFoo(string term){
if(term.contains("Foo"){
return true;
}
return false;
}
你可以这样称呼它:
filteredCollection = collection.Find(ContainsFoo);
我似乎记得很多人评论LINQ如何更快地编写代码,因为开发人员现在可以在线编写函数。我们之前如何编写“脱机”功能?
答案 0 :(得分:3)
在LINQ之前,您只能使用所有内置的List
/ List<T>
方法,而Find就是其中之一(仍然是)。区别在于它需要Predicate<T>
而不是Func<Boolean, T>
,您仍然可以进行内联,例如。
var found = list.Find(delegate(Item item) { return item != null; });
或者正如您使用命名方法所证明的那样。