lambda和LINQ之间的区别?

Liq*_*ore 9 c# linq lambda

有人能解释一下lambda和linq之间的区别吗?

请不要指出我的其他堆栈交换答案或简单的解释,我已经检查了大多数,他们是非常混乱.

在这些日子里,我使用了一些LINQ(我相信?)表达式(仅仅是一个发明的例子)

var result = object.Where(e => e.objectParameter > 5).Any()
Run Code Online (Sandbox Code Playgroud)

其中,应返回一个布尔值,表示是否有任何元素> 5.

那么,什么是LINQ和lambda?

LINQ只是一个库,一组函数,由C#团队开发包含

using System.Linq;
Run Code Online (Sandbox Code Playgroud)

它为您提供了一个动力的"for循环",有许多方法可以避免让您的手"变脏"?(首先,FirstOrDefault,Any ....等)

什么是Lambda?和上面一样吗?它是一种语言吗?它是什么以及它与LINQ有何不同?我如何识别这一个或另一个?

谢谢

Nik*_*nte 18

Linq(语言集成查询)可以使用Lambdas(Lambda表达式)但不必使用.

这是Linq:

var a = from b in someList
        where b.Value == something
        select b;
Run Code Online (Sandbox Code Playgroud)

但是可以用Lambda编写:

var a = someList.Where(b => b.Value == something);
Run Code Online (Sandbox Code Playgroud)

Lambda是b => b.Value == something.


在哪里mock.Setup(m => m.SomeOp()).Returns(new Thing());使用Lambda(the m => m.SomeOp()),但与Linq无关.

  • 更具体地说,lambda从lambda运算符开始:`=>` (2认同)

Ore*_*aki 11

语言集成查询(LINQ)是Visual Studio 2008中引入的一组功能,它将强大的查询功能扩展到C#和Visual Basic的语言语法

lambda表达式是一个匿名函数,可用于创建委托或表达式树类型.通过使用lambda表达式,您可以编写可以作为参数传递或作为函数调用的值返回的本地函数.

Linq 使用 Lambda表达式来执行它的一些功能.

例:

new [] { "Dan", "Yossi", "Ben" }.Where(item => item.Length == 3);
Run Code Online (Sandbox Code Playgroud)

Lambda表达式:item => item.Length == 3
Linq:(from item in (new [] { "Dan", "Yossi", "Ben" }) where item.Length == 3)