gpt4 book ai didi

c# - 分组并在列表中计数

转载 作者:可可西里 更新时间:2023-11-01 03:05:50 26 4
gpt4 key购买 nike

我有一个充满整数的列表,如下所示:

[0] 1
[1] 4
[2] 4
[3] 8
[4] 9
[5] 1
[6] 1

所以基本上是随机数,但相同的数字可以在该列表中多次出现。

我想要的是按数字对它们进行分组,但我还可以知道该数字在列表中出现了多少次。所以我有一个类似的东西:

[0] 
[number] 1
[total] 3 // Occured 3 times in the list
[1]
[number] 4
[total] 2
[2]
[number] 8
[total] 1
[3]
[number] 9
[total] 1

是否有快速/简单的方法来完成此操作?或者我是否有写出各种循环和检查来手动构建这样的东西?

最佳答案

使用GroupBy计数:

var numberGroups = numbers.GroupBy(i => i);
foreach(var grp in numberGroups)
{
var number = grp.Key;
var total = grp.Count();
}

这是另一个使用匿名类型来存储一些信息的示例。它还创建了一个数组,因为它似乎是所需的结果:

var numberGroups = numbers.GroupBy(i => i)
.Select(grp => new{
number = grp.Key,
total = grp.Count(),
average = grp.Average(),
minimum = grp.Min(),
maximum = grp.Max()
})
.ToArray();

foreach (var numInfo in numberGroups)
{
var number = numInfo.number;
// ...
var maximum = numInfo.maximum;
}

关于c# - 分组并在列表中计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10600129/

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