私がコードを書くつもりならば、これは純粋に私自身の知識のためです。.Max()
を使用します。.Max()vs OrderByDescending()。First()
最初の考えでは、.Max()
は、最大を見つけるためにnumbers
を1回通過するだけで、2番目の方法はすべてのものを並べ替えて最初のものを見つけなければなりません。したがって、それはO(n)
対O(n lg n)
です。しかし、その後、私はそれが最高のものしか必要としていないことを知っているかもしれないと思っていました。
質問: は、LINQおよび/またはそれが全体の列挙をソートする必要があるとダウン.MAX(と本質的に同じにコードを沸騰しないことを把握するのに十分賢いコンパイラですか)?見つけ出す定量可能な方法はありますか?
IEnumerable<int> numbers = Enumerable.Range(1, 1000);
int max = numbers.Max();
int max2 = numbers.OrderByDescending(x => x).First();
良い点付近でコード! +1 –