web-dev-qa-db-ja.com

linqを使用して最大値を持つアイテムを見つける方法は?

以下の表をご覧ください。

Item          Value
A                10
b                50
c                90

maximum valueでアイテムを見つけたい。 group byまたはorderdingを使用して取得できますが、どういうわけかより直接的な方法があるはずだと感じています。私は正しいですか?

53
user1784622

EFまたはLINQ to SQLの場合:

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

LINQ to Objectsでは、 morelinq extension MaxBy(nugetからmorelinqを取得)を使用することをお勧めします。

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