[asp.net]在 LINQ 查询中的"=>"的标志是什么?

标签: Asp.net Linq C#
发布时间: 2017/3/26 5:00:07
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

它是惊人这有多少信息。我发现吨的教程解释 LINQ,但他们不解释此特定的运算符︰

var Results = UserFavoritesContext.UserFavorites.Select(color => color.FavoriteColor);

"x => x.y"

可有人请解释这是如何工作?我得到的一般语法和 am 能够使用它来进行查询,但它是喜欢做的事不知道你在做什么。

解决方法 1:

假设您有一个列表的 people ,和你想要对其进行遍历。你会写的东西像︰

foreach(var person in people)
{
       //do something to person
}

请注意你自己如何选择名称 person 。也可能是任何字,但你基本上说"处理作为列表中的每个单个项目我 person 变量"。

现在看看这个 LINQ 查询︰

filteredPeopleList = people.Where(person => person.Name == "John");

再次,你基本上选择 person 作为原始列表 (一次一个) 中的每个对象的占位符名称。上面的 Linq 查询是等效于

foreach(var person in people)
{
       if(person.Name == "John")
       {
           filteredPeopleList.Add(person);
       }
}

对我来说, x => x.y 基本上说"我们处理每个变量 (让我们称之为 x ),请执行以下操作 ( x.y ,得到 y 属性)"

我希望这就是原因。

编辑
作为一个评论者现在删除他提到的评论,这并不是专门用在 LINQ 中。Lambda 表达式不需要遍历 IEnumerable ,它可以用来处理一个单一的项目。
然而,LINQ 是迄今为止最常见的地方遇到 lambda 时,和我找到它们的使用非常类似于 foreach 循环,这就是为什么我拿这个例子。

赞助商