¿Cómo tomar todo excepto el último elemento en una secuencia usando LINQ?
Digamos que tengo una secuencia.
IEnumerable<int> sequence = GetSequenceFromExpensiveSource();
// sequence now contains: 0,1,2,3,...,999999,1000000
Obtener la secuencia no es barato y se genera dinámicamente, y quiero recorrerla solo una vez.
Quiero obtener 0 - 999999 (es decir, todo menos el último elemento)
Reconozco que podría hacer algo como:
sequence.Take(sequence.Count() - 1);
pero eso resulta en dos enumeraciones sobre la secuencia grande.
¿Hay una construcción LINQ que me permite hacer:
sequence.TakeAllButTheLastElement();