Esto es puramente para mi propio conocimiento, si fuera a escribir el código solo usaría .Max()
..Max() vs OrderByDescending(). Primero()
Al principio, .Max()
solo tiene que hacer un pase simple a través de numbers
para encontrar el máximo, mientras que la segunda forma tiene que ordenar todo lo enumerable y luego encontrar el primero. Entonces es O(n)
vs O(n lg n)
. Pero luego pensé que tal vez sabía que solo necesitaba lo mejor y solo lo agarraba.
Pregunta: ¿Es LINQ y/o el compilador lo suficientemente inteligente como para saber que no hay que solucionar todo el enumerables y hierve el código de abajo a esencialmente el mismo que .MAX()? ¿Hay alguna forma cuantificable de averiguarlo?
IEnumerable<int> numbers = Enumerable.Range(1, 1000);
int max = numbers.Max();
int max2 = numbers.OrderByDescending(x => x).First();
Buen punto! +1 –