LINQ和lambda表达式(Linq and lambda expression)

2019-06-26 02:16发布

是什么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
标签: linq lambda