我有一些数据返回如下:
Model { Guid Id }
Run Code Online (Sandbox Code Playgroud)
我有一个总项目的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) });
Run Code Online (Sandbox Code Playgroud)
而Item Class有2个成员:Category的字符串和Value的小数.
谢谢!
编辑:所以我有以下数据IEnumerable<Model> data,它包含以下数据:
{ Id: 1 }
{ Id: 2 }
{ Id: 2 }
{ Id: 1 }
{ Id: 3 }
{ Id: 4 }
Run Code Online (Sandbox Code Playgroud)
和totalCount = 10.
我想获得标识的数据,这是4在这种情况下的重复计数,如1类,TOTALCOUNT -不同的项目为2类所以对于结果,我将有一个IEnumerable的Item有以下几点:
{ Category: "1", Value: 4 }, { Category: "2", Value: 6 }
Run Code Online (Sandbox Code Playgroud)
现在我的linq语句只返回{ Category: "1", Value: 4 },我不知道接下来该做什么.
dav*_*d.s 11
你的问题不是很清楚,但我认为这就是你想要的:
int totalCount = data.Count();
int distinctCount = data.Select(x => x.Id).Distinct().Count();
List<Item> result = new List<Item>
{
new Item() { Category = "1", Value = distinctCount },
new Item() { Category = "2", Value = totalCount - distinctCount },
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11589 次 |
| 最近记录: |