Первый будет немного быстрее, так как несколько снижает накладные расходы. Кроме того, они обрабатываются в основном таким же образом.
Одно заметное отличие состоит в том, что свойство Color
сравнивается перед свойством Age
во втором примере. Если вы хотите более дешевое сравнение, чем короткое замыкание и более дорогое (так что свойство Color
сравнивается только для элементов, для которых Age
сравнение истинно), вы должны поместить более дешевое в последний вызов Where
:
var blackOldCats =
cats
.Where(cat => cat.Colour == "noir")
.Where(cat => cat.Age > 7);
В этом случае нет большой разницы в стоимости сравнений, но если одно намного дороже другого, было бы полезно узнать, в каком порядке они оцениваются.