这可能是一个愚蠢的问题,但是当我看到这样的代码时
var newList = list.OrderBy(x => x.Product.Name).toList();
我想知道(x => x.Product.Name)
是什么意思?
比如,x
是什么以及=>
是什么意思?
我不知道要搜索什么以获取有关此主题的更多信息,我们将不胜感激,谢谢。
答案 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可用于满足委托,或者可用于构建表达式树。这是一个复杂的主题,但值得一提。