是什么LINQ和Lambda表达式之间的区别? 是否有任何优势,使用lambda,而不是LINQ查询?
Answer 1:
LINQ是语言集成查询。 当使用LINQ,小匿名函数通常被用作一个参数。 小匿名函数是一个lambda表达式。
var q = someList.Where(a => a > 7);
在上面的查询a => a > 7
是λ表达式。 这是写一个小工具,方法和传递,为相当于Where
:
bool smallMethod(int value)
{
return value > 7;
}
// Inside another function:
var q = someList.Where(smallMethod);
这意味着,你的问题实在是不可能的回答。 LINQ和lambda表达式是不能互换的,而lambda表达式是用来实现LINQ的技术之一。
Answer 2:
LINQ是语言集成查询,其中的λ表达是类似的。NET 2.0 Annonymous方法。
你真的不能比较它们可能是你弄糊涂了,因为LINQ与LAMDA表达的大部分时间有关。
你需要看看这篇文章: LINQ和的Lamda表达式的基础知识
编辑:(我不是很确定,但可能是你正在寻找的区别查询语法和方法Sytnax )
int[] numbers = { 5, 10, 8, 3, 6, 12};
//Query syntax:
IEnumerable<int> numQuery1 =
from num in numbers
where num % 2 == 0
orderby num
select num;
//Method syntax:
IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n);
在取自上述例子MSDN ,方法Sytnax包含的λ表达式(num => num % 2 == 0)
其工作原理等的方法,采用数字作为输入,并且如果它们甚至返回true。
他们都是相似的,在的话乔恩斯基特,他们都编译成类似的代码 。
Answer 3:
简而言之:
LINQ是quering技术(语言集成查询)。 LINQ广泛使用的λ的作为参数传递给标准查询操作方法,如Where子句。
lambda表达式是包含表达式和语句匿名函数。 它是完全从LINQ分开且不同。
文章来源: Linq and lambda expression