如何获取其中一个列条目相同的行数计数

时间:2018-09-17 11:11:38

标签: c# entity-framework entity-framework-core

首先,对不起,标题不好,我真的不知道这叫什么。

我知道我可以使用X。但是我想要一些更通用的东西,在其中我可以计算出其中一列中具有相同条目的行数。我的意思的图片:enter image description here

我想要得到的最终结果是计数列表,例如:3、1等

2 个答案:

答案 0 :(得分:3)

您可以使用GroupBy语句对此项的值进行分组,然后Select对其进行分组以得到结果:

var result = await db.Model
        .GroupBy(x => x.Age)
        .Select(g => new {
            Age = g.Key, 
            Count = g.Count(),
        })
        .ToListAsync();

结果是一个对象列表,该对象的属性为Age,具有年龄值,而属性为Count,其项目数为该Age

Example result

如果只需要计数,则可以直接从Select表达式返回这些计数:

var result = await db.Model
        .GroupBy(x => x.Age)
        .Select(g => g.Count())
        .ToListAsync();

请注意,这显然会阻止您说出个人人数代表的年龄。

答案 1 :(得分:0)

尝试使用distinct方法并获取匿名对象,然后在其上应用count

context.Model.Where(a => a.Entity == "example").Select(a = > new {a.User, a.Address, a.Age}).Distinct().Count()