Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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#_Linq - Fatal编程技术网

C# 方法链可以称为LINQ吗?

C# 方法链可以称为LINQ吗?,c#,linq,C#,Linq,将此代码段称为LINQ(语言集成查询)正确吗 var lstMyStrings=new List(); 其中(aX=>string.IsNullOrEmpty(aX)) .跳过(3) .ToList(); 我感到困惑,因为系统。Linq对于此代码是强制性的。 然而,当我看到问题和答案是这样的:,那么他们谈论的是明确的方法链,而不是LINQ。LINQ可以用两种不同的方式编写。 一种是使用LINQ声明性查询语法编写查询: var query = from x in source

将此代码段称为LINQ(语言集成查询)正确吗

var lstMyStrings=new List();
其中(aX=>string.IsNullOrEmpty(aX))
.跳过(3)
.ToList();
我感到困惑,因为
系统。Linq
对于此代码是强制性的。

然而,当我看到问题和答案是这样的:,那么他们谈论的是明确的方法链,而不是LINQ。

LINQ可以用两种不同的方式编写。
一种是使用LINQ声明性查询语法编写查询:

var query = from x in source
            where condition
            select x.Property
另一种是使用LINQ的扩展方法:

var query = source.Where(condition).Select(x => x.Property);
两个查询都是相同的,并将产生相同的结果(在这个过于简化的示例中,编译器错误,但重要的是思想:-)

c#编译器将查询转换为方法调用。
这意味着,作为查询编写的所有内容也可以使用方法链编写。但是,请注意,相反的情况是错误的——一些查询只能使用Linq的扩展方法编写

供进一步阅读

注:第二段以以下内容开头:

查询语法和方法语法在语义上是相同的,但许多人发现查询语法更简单,更易于阅读


顺便说一句,如果还不清楚,
System.Linq
对于方法链接语法是强制性的,也是因为Linq扩展方法属于这个名称空间。

它仍然是Linq,只是不是“查询语法”。@Kobi谢谢!Linq只是一组处理项集合的方法,类似于基于查询的语言(如SQL)。您提供的查询语法和方法链实际上都是该名称空间中的linq方法,它们只是在语法上不同,在行为上没有区别。@HimBromBeere感谢您的详细说明!
var query = source.Where(condition).Select(x => x.Property);