Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用linq查找具有最大值的项目?_C#_Linq_Max - Fatal编程技术网

C# 如何使用linq查找具有最大值的项目?

C# 如何使用linq查找具有最大值的项目?,c#,linq,max,C#,Linq,Max,请看下表: Item Value A 10 b 50 c 90 我想查找具有最大值的项目。我可以通过使用groupby或ordering来实现这一点,但不知何故,我觉得应该有一种更直接的方法。我说得对吗?使用EF或LINQ to SQL: var item = db.Items.OrderByDescending(i => i.Value).FirstOrDefault(); 对

请看下表:

Item          Value
A                10
b                50
c                90

我想查找具有
最大值的项目
。我可以通过使用
groupby
ordering
来实现这一点,但不知何故,我觉得应该有一种更直接的方法。我说得对吗?

使用EF或LINQ to SQL:

var item = db.Items.OrderByDescending(i => i.Value).FirstOrDefault();
对于LINQ to对象,我建议使用扩展名
MaxBy
(从nuget获取更多LINQ):


您使用的是Linq2Sql吗?@user1784622我认为这很简单。@user1784622 LINQ的Max函数将返回Max value,而不是具有Max value的项。也就是说,对于您的项目,您将获得
90
是的,考虑到有多少人想要使用它,微软还没有将MaxBy添加到标准的可枚举扩展中,这真是奇怪。至少我们有Jon Skeet的morelinq.:)+1.如果由于某种原因无法使用morelinq,则可以实现自定义比较器并使用相应版本的.Net版本的Max..@user:您可以在Linqpad中引用自己的库。有一个添加引用的选项。
var item = items.MaxBy(i => i.Value);