这种写作方式意味着什么?

时间:2015-04-28 14:13:36

标签: c#

这可能是一个愚蠢的问题,但是当我看到这样的代码时

var newList = list.OrderBy(x => x.Product.Name).toList();

我想知道(x => x.Product.Name)是什么意思? 比如,x是什么以及=>是什么意思?

我不知道要搜索什么以获取有关此主题的更多信息,我们将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:0)

在google上查看Lambda Expression。以下是Lambda表达式的MS页面的链接 - https://msdn.microsoft.com/en-us/library/bb397687.aspx

答案 1 :(得分:0)

它被称为Lambda Expression

lambda表达式是一种将方法作为参数传递的方法。上面的lambda表达式可以写成一个方法,可能是这样的:

public string GetProductName(Thing x)
{
     return x.Product.Name;
}

所以我们看到x是方法的参数,或者在这种情况下是lambda表达式。

LINQ中的OrderBy方法然后使用这个"方法"或lambda表达式来了解如何对列表进行排序 - OrderBy本身对您的对象一无所知或如何对它们进行排序,所以我们通过调用传入一个lambda命令。

IQueryable的情况下,lambda表达式实际上不是被调用的代码,而是构建了表达式树。 lambda可用于满足委托,或者可用于构建表达式树。这是一个复杂的主题,但值得一提。