1

我想谈谈 LINQ,并想提一下查询集合是如何工作的。回到 .Net 1.1,我似乎记得有一个方法(可能是 Find()?),您可以在其中传递另一个方法的地址,该方法将询问集合中的每个项目并确定它是否应该包含在过滤的集合中。

我完全记错了吗?它一直困扰着我,因为当时的语法很不寻常。

我以为是这样的:

public bool ContainsFoo(string term){
    if(term.contains("Foo"){
       return true;
    }
    return false;
}

你可以这样称呼它:

 filteredCollection = collection.Find(ContainsFoo);

我似乎记得很多人评论过 LINQ 编码速度如何如此之快,因为开发人员现在可以内联编写函数。我们之前是如何“外联”编写函数的?

4

1 回答 1

3

在 LINQ 之前,您仅限于所有内置List/List<T>方法,是的Find是其中之一(仍然是)。不同之处在于它期望 aPredicate<T>而不是Func<Boolean, T>你仍然可以内联的 a

var found = list.Find(delegate(Item item) { return item != null; });

或者正如您通过使用命名方法所演示的那样。

于 2013-07-09T14:07:21.523 回答