Tengo IEnumerable<T>
. Quiero hacer una cosa para cada elemento de la colección, excepto el último elemento, al que quiero hacer otra cosa. ¿Cómo puedo codificar esto prolijamente? En PseudocódigoIEnumerable foreach, haga algo diferente para el último elemento
foreach (var item in collection)
{
if (final)
{
g(item)
}
else
{
f(item)
}
}
Así que si mi IEnumerable eran Enumerable.Range(1,4)
lo haría f (1) f (2) f (3) g (4). NÓTESE BIEN. Si mi IEnumerable tiene la longitud 1, quiero g (1).
Mi IEnumerable es un poco malo, lo que hace que Count()
sea tan caro como hacer un bucle sobre todo el asunto.
Gracias pongo que, en un método de extensión https://gist.github.com/2781446 –
@OJay nop; el primer elemento se procesa una vez que sabemos que no es el elemento * final *, así que: cuando hayamos leído el segundo, tenga en cuenta que en el primer comentario trabajamos con 'last', también conocido como elemento ** previo **, * no * el actual –
'IEnuemerable' debe leer' IEnumerable' Supongo. – Blairg23