foreach (var item in collection.Reverse().Skip(1))
{
}
// do here the stuff related to list.LastOrDefaut()
Другой подход заключается в поддержании индекса итерации, и когда вы нажмете collection.Length-2
или collection.Count()-2
, остановите цикл и сделайте все, что вы хотите с последним элементом.
Но, как сказал @BrokenGlass, остерегайтесь побочных эффектов, которые могут возникнуть в вашем приложении.
И, как правило, вы должны использовать Linq с особой осторожностью.
Например, каждый раз, когда вы выполняете итерацию в коллекции linq to sql, вы снова выполняете запрос, поэтому гораздо лучше выполнить его один раз с нетерпением , просто вызвав .ToList()
и использовать его в коллекции памяти столько, сколько вам нужно. хочу.