【发布时间】:2010-06-09 08:37:19
【问题描述】:
想象一下你有这样一门课:
class Foo {
string key;
int value;
}
如何从IEnumeralbe<Foo> 中选择具有最高值的 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)。
【问题讨论】: