Получить список элементов списка <> с помощью Linq

Я хочу запросить список < > и узнать, как МНОГИЕ элементы соответствуют критериям выбора. используя LINQ и С#/. Как мне изменить запрос для возврата числа int.

var specialBook = from n in StoreDisplayTypeList 
                  where n.DisplayType=="Special Book" 
                  select n;

Ответы

Ответ 1

 var numSpecialBooks = StoreDisplayTypeList.Count(n => n.DisplayType == "Special Book");

Это использует перегрузку Enumerable.Count, которая использует предикат Func<TSource, bool> для фильтрации последовательности.

Ответ 2

Попробуйте следующее:

int specialBookCount = (from n in StoreDisplayTypeList 
                        where n.DisplayType=="Special Book" 
                        select n).Count()

Но если вам нужны данные, вы можете работать с IEnumerable. Таким образом, вы можете использовать свой запрос и использовать метод расширения Count(), когда захотите.

var specialBook = from n in StoreDisplayTypeList 
                  where n.DisplayType=="Special Book" 
                  select n;
int num = specialBook.Count();

Ответ 3

Просто выполните ваш запрос следующим образом: (from ... select n).Count().