Как объединить оператор Where и группу в LINQ

Кто-либо может помочь мне преобразовать ниже кода к LINQ?

Select Catg,Count(*)  From Mycatg  where IsPublic=1 or FirstName='XXX' Group By Catg  .
12
задан Robert Harvey 19 August 2019 в 21:16
поделиться

1 ответ

В C # что-то вроде:

var query = from category in mycatg
            where category.IsPublic == 1
               || category.FirstName == "XXX"
            group 1 by category.Catg into grouped
            select new { Catg = grouped.Key,
                         Count = grouped.Count() };

Проекция «1» проясняет, что все, что нам нужно, это ключ группировки и счетчик - отдельные записи в каждой группировке не имеют значения .

Используя лямбда-синтаксис и точечную запись:

var query = mycatg.Where(category => category.IsPublic == 1
                         || category.FirstName == "XXX")
                  .GroupBy(category => category.Catg,
                           category => 1)
                  .Select(grouped => new { Catg = grouped.Key,
                                           Count = grouped.Count() });
24
ответ дан 2 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

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