Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ之前的遗留集合查询_C#_.net - Fatal编程技术网

C# LINQ之前的遗留集合查询

C# LINQ之前的遗留集合查询,c#,.net,C#,.net,我想介绍一下LINQ,并想谈谈查询集合过去是如何工作的。回到.NET1.1,我似乎记得有一个方法(Find()也许?),在这个方法中,您将传递另一个方法的地址,该方法将询问集合中的每个项,并确定它是否应包含在过滤的集合中 我完全记错了吗?它一直困扰着我,因为语法在当时是不寻常的 我以为是这样的: public bool ContainsFoo(string term){ if(term.contains("Foo"){ return true; } retu

我想介绍一下LINQ,并想谈谈查询集合过去是如何工作的。回到.NET1.1,我似乎记得有一个方法(Find()也许?),在这个方法中,您将传递另一个方法的地址,该方法将询问集合中的每个项,并确定它是否应包含在过滤的集合中

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

我以为是这样的:

public bool ContainsFoo(string term){
    if(term.contains("Foo"){
       return true;
    }
    return false;
}
你可以这样称呼它:

 filteredCollection = collection.Find(ContainsFoo);

我似乎记得很多人评论LINQ是如何更快地编写代码的,因为开发人员现在可以在线编写函数了。我们以前是如何编写函数“outline”的?

在LINQ之前,您仅限于所有内置的
列表方法,yes是其中之一(现在仍然是)。区别在于它需要一个
谓词
,而不是一个
函数
,您仍然可以内联执行该函数,例如

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

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

只是对集合进行迭代,我相信这就是您所要寻找的:您可能正在考虑的,这需要一个谓词。在lambda表达式(“函数内联”)之前,您可以传递给这样的方法。在泛型之前有什么方法可以这样做吗?也许我对.Net一代的理解是错误的,直到第2代才出现。0@ChrisHardie是的,我的回答提到了
列表
,但同样的方法也适用于
列表
,我已经对其进行了更新,以澄清这一点。我将在单独的回答中发布这一点,但将在此处提及;MSDN文档
列表(T)。请在此处查找