如何在LINQ中组合Where子句和group by

Won*_*ing 12 linq

我正在学习LINQ并被困在这里:-(.任何人都可以帮助我将代码转换为LINQ吗?

Select Catg,Count(*)  From Mycatg  where IsPublic=1 or FirstName='XXX' Group By Catg  .
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 24

在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() };
Run Code Online (Sandbox Code Playgroud)

"1"的投影清楚地表明,我们所需要的只是分组和计数的关键 - 每个分组中的各个条目都是无关紧要的.

编辑:现在使用lambda语法和点表示法:

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() });
Run Code Online (Sandbox Code Playgroud)