我有一些数据返回如下:
Model { Guid Id }
我有一个 int 的总项目,int totalCount
。
我试图从作为类别 1 返回的数据中获取不同的计数,并将总项目减去类别 1 的计数作为类别 2。
我有以下 linq 来获取类别 1 的不同计数,但是如何将类别 2 的计数添加到 IEnumerable 中?
var result = data.
GroupBy(x => x.Id).
Select(x => new { Category = "1", Value = x.Select(v => v.Id).Distinct().Count() }).
GroupBy(x => x.Category).
Select(x => new Item { Category = x.Key, Value = x.Sum(y => y.Value) });
并且项目类有 2 个成员:类别的字符串和值的小数。
谢谢!
编辑:所以我有以下数据IEnumerable<Model> data
,它包含以下数据:
{ Id: 1 }
{ Id: 2 }
{ Id: 2 }
{ Id: 1 }
{ Id: 3 }
{ Id: 4 }
和总计数 = 10。
我想从数据中获取 Id 的不同计数,在这种情况下为 4,作为类别 1,而 totalCount - 不同的项目为类别 2。因此,对于结果,我将有IEnumerable
以下Item
内容:
{ Category: "1", Value: 4 }, { Category: "2", Value: 6 }
现在我的 linq 语句只返回{ Category: "1", Value: 4 }
,我不知道下一步该做什么。