我有一个人名和年龄等数据库。我有一个查询按名称分组,并获得符合条件的每个名称的数量。 ListHelper类型只是一个包含两个属性的类。
IEnumerable<ListHelper> HelperEnumerable = null
HelperEnumerable = _repository.Persons
.Where(b => b.Age < 18)
.GroupBy(
n => n.FirstName
, a => a.FirstName
, (key, count) => new ListHelper { Name = key, Amount = count.Count() }
);
当我ToList()HelperEnumerable时,结果如下: 姓名:&#34; Michael&#34;,金额:100, 姓名:&#34; Eva&#34;,金额:122, 姓名:&#34; Lisa&#34;,金额:71, 等
我如何获得类似的结果,但是所有符合条件的人数都会得到如下结果: 姓名:&#34;全部&#34;,金额:17280
我想拥有键值对,所以其余代码都可以保持不变,只有这个查询会返回所有matchig行的计数,而不是按任何特定的columm分组。
我试过这个只返回int计数:
HelperEnumerable = _repository.Persons
.Where(b => b.Age < 18).Count();
我无法添加
.Select(a => (key,count) new ListHelper{ key = "All", count = a })
在Count()之后尝试将结果投影为两个字段。
答案 0 :(得分:1)
做什么:
IEnumerable<ListHelper> HelperEnumerable = null
HelperEnumerable = _repository.Persons
.Where(b => b.Age < 18)
.GroupBy(
n => "All"
, (key, count) => new ListHelper { Name = key, Amount = count.Count() }
);
你不需要这样做吗?
或者为什么不呢:
new ListHelper{ key = "All", count = _repository.Persons.Where(b => b.Age < 18).Count() };
...