想象一下,你有這樣的一類:如何使用LINQ選擇具有最高值的項目?
class Foo {
string key;
int value;
}
你會如何選擇與富從IEnumeralbe<Foo>
最高值?
一個基本的問題是保持迭代次數低(即在1),但會影響可讀性。畢竟,我能找到的最好的東西是沿着這條線:
IEnumerable<Foo> list;
Foo max = list.Aggregate ((l, r) => l.value > r.value ? l : r);
你能想出更好的方法嗎?
編輯:list.OrderByDescending(l => l.value).First();
是我的首選選項,但它不是O(n)。
現在很吸引人。 – mafu 2010-06-09 08:47:24
是的,morelinq很棒。 – tzaman 2010-06-09 08:47:58
或list.Where(w => w.value == list.Max(m => m.value)) – 2017-01-28 19:49:13