如何使用 Linq 获取列中每个不同值的计数
Posted
技术标签:
【中文标题】如何使用 Linq 获取列中每个不同值的计数【英文标题】:How to get the count of each distinct value in a column using Linq 【发布时间】:2021-11-14 08:12:15 【问题描述】:我有一张如下图所示的表格
Db Table Example
我尝试的是返回不同的
var result = db.TaskTable.Select(item => item.Status).Distinct().Count();
string json = Newtonsoft.Json.JsonConvert.SerializeObject(result,Newtonsoft.Json.Formatting.Indented);
return Ok(json);
为我的 Web API 使用 Link 我想返回每个的不同计数。例如在 user_goup A 我想将其返回为:
“进行中:”“2” “已完成”:“1” “已停止”:“1”
【问题讨论】:
【参考方案1】:从以下内容开始:
var q = from item db.TaskTable
group by item.Status into byStatus
select new Status = byStatus.Key, Count = byStatus.Distinct().Count() ;
然后根据结果手动构造 JSON。
【讨论】:
您可以使用fluent api.ToDictionary(i => i.Status, i => i.Count)
格式化来自IQuerable
的json 结果。不确定是否有 linq sql 格式。以上是关于如何使用 Linq 获取列中每个不同值的计数的主要内容,如果未能解决你的问题,请参考以下文章