Мне нужно перебирать список объектов, делая что-то только для объектов с логическим свойством, установленным в true. Я обсуждаю этот код
foreach (RouteParameter parameter in parameters.Where(p => p.Condition))
{ //do something }
и этот код
foreach (RouteParameter parameter in parameters)
{
if !parameter.Condition
continue;
//do something
}
Первый код явно чище, но я подозреваю, что он будет циклически перебирать список дважды - один раз для запроса и один раз для foreach. Это не будет огромный список, поэтому я не слишком беспокоюсь о производительности, но идея цикла дважды меня просто задевает.
Вопрос: Есть ли чистый/симпатичный способ написать это без цикла дважды?