как Вы добавляете условие к лямбда-выражению

если у меня есть этот код сегодня для обнаружения суммарного итога с помощью LINQ:

return (MyArray.Sum(r => r.Trips);

и я хочу только включать itms где r. CanDrive == верный.

можно ли добавить условие в единственное linke лямбда-выражение? как Вы сделали бы это

9
задан leora 7 June 2010 в 10:44
поделиться

2 ответа

Вы можете связать два бита LINQ вместе следующим образом:

return MyArray.Where(r => r.CanDrive).Sum(r => r.Trips);
16
ответ дан 4 December 2019 в 08:14
поделиться

Ответ Дэвида полностью правильный, но другой альтернативой может быть использование условного оператора:

return MyArray.Sum(r => r.CanDrive ? r.Trips : 0);

Лично я бы использовал форму Where, но я решил представить альтернативу...

(Еще одной альтернативой было бы создание собственного метода Sum, который принимал бы и предикат, и проекцию, но я думаю, что это уже перебор)

.
10
ответ дан 4 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: