gpt4 book ai didi

c# - Linq 不同计数

转载 作者:行者123 更新时间:2023-12-04 22:34:02 25 4
gpt4 key购买 nike

我有一些数据返回如下:

Model { Guid Id }

我有一个整数, 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) });

和 Item Class 有 2 个成员:用于类别的字符串和用于值的十进制。

谢谢!

编辑:
所以我有以下数据 IEnumerable<Model> data ,它包含以下数据:
{ Id: 1 }
{ Id: 2 }
{ Id: 2 }
{ Id: 1 }
{ Id: 3 }
{ Id: 4 }

和 totalCount = 10。

我想从数据中获取 Id 的不同计数,在这种情况下为 4,作为类别 1,而 totalCount - 独特的项目作为类别 2。所以对于结果,我将有一个 IEnumerableItem具有以下内容:
{ Category: "1", Value: 4 }, { Category: "2", Value: 6 }

现在我的 linq 语句只返回 { Category: "1", Value: 4 } ,我不知道接下来要做什么。

最佳答案

你的问题不是很清楚,但我认为这就是你想要的:

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 },
};

关于c# - Linq 不同计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com