如何使用Linq统计数据表指定列各不同值的对应出现次数
实现方案
你可以通过LINQ的GroupBy方法对Status列分组后统计每组条数,再将结果转为字典序列化即可得到目标格式:
完整代码示例
// 如需按user_group筛选,保留Where条件,不需要则删除 var result = db.TaskTable .Where(item => item.user_group == "A") .GroupBy(item => item.Status) .Select(g => new { Status = g.Key, Count = g.Count() }) .ToList() .ToDictionary(item => item.Status, item => item.Count.ToString()); string json = Newtonsoft.Json.JsonConvert.SerializeObject(result, Newtonsoft.Json.Formatting.Indented); return Ok(json);
说明
GroupBy(item => item.Status)会将表中所有数据按Status字段的不同值拆分为多个分组- 每个分组调用
Count()即可得到该状态的出现次数 - 转为
Dictionary<string, string>结构后,Newtonsoft.Json序列化会直接输出你需要的键值对格式JSON - 如果你需要计数为数字类型而非字符串,删除
ToString()即可
内容的提问来源于stack exchange,提问作者Anikwenwa Tosan
相关产品推荐
相关产品推荐

