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

问题描述:

看一看如下表:如何使用linq查找具有最大值的项目?

Item   Value 
A    10 
b    50 
c    90 

我想maximum value找到的项目。我可以通过使用group byorderding得到,但不知怎的,我有一种感觉应该有一个更直接的方式。我对吗?

+0

是否使用LINQ2SQL? – slugster 2013-03-07 07:40:08

随着EF或LINQ to SQL的:

var item = db.Items.OrderByDescending(i => i.Value).FirstOrDefault(); 

使用LINQ到对象,我建议使用morelinq扩展MaxBy(从获得的NuGet morelinq):

var item = items.MaxBy(i => i.Value); 
+0

我可以这样做,但我认为应该有另一种更直接的方式来解决问题。这是真的吗? LinQ的Max功能如何? – user1784622 2013-03-07 07:43:39

+3

@ user1784622我认为这非常简单。 – sshow 2013-03-07 07:45:13

+4

@ user1784622 LINQ的最大功能将返回最大值,而不是最大值的项目。即对于你的项目,你会得到'90' – 2013-03-07 07:46:12