У меня есть IEnumerable<T>
. Я хочу сделать одну вещь для каждого элемента коллекции, кроме последнего элемента, к которому я хочу сделать что-то еще. Как я могу это сделать аккуратно? В псевдокоде
foreach (var item in collection)
{
if ( final )
{
g(item)
}
else
{
f(item)
}
}
Итак, если мой IEnumerable был Enumerable.Range(1,4)
, я бы сделал f (1) f (2) f (3) g (4). NB. Если мой IEnumerable имеет длину 1, я хочу g (1).
Мой IEnumerable бывает вроде дрянной, делая Count()
столь же дорогим, как и цикл над всем.