gpt4 book ai didi

c# - 根据数组元素对数组的每 500 个元素进行分组

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:51 25 4
gpt4 key购买 nike

我有一个包含 2000 个字符串的数组。字符串是:“艺术”、“经济”、“体育”和“政治”。我想对每 500 个元素进行分组并计算它们的数量

有人能帮忙吗?

最佳答案

另一种解决方案:

var count = 0;
var dictionaries =
strings.GroupBy(s => count++ / 500)
.Select(g => g.Distinct().ToDictionary(k => k, k => g.Count(s => s == k)))
.ToList();

这将创建一个 List<Dictionary<string, int>> .每个字典代表 500 个元素(对于最后一个字典可能更少),其中键是字符串,值是字符串在字典代表的 500 个元素中出现的次数。

不需要硬编码所有可能遇到的可能值。

为了获得最大可能的性能,您还可以使用此版本:

var count = 0;
var dictionaries =
strings.GroupBy(s => count++ / 500)
.Select(g => g.Aggregate(
new Dictionary<string, int>(),
(d, w) => { d[w] = (d.ContainsKey(w) ? d[w] + 1 : 1); return d; })
)
.ToList();

此版本对源数组中的每个元素恰好迭代一次。输出格式与第一个版本相同。

关于c# - 根据数组元素对数组的每 500 个元素进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13359299/

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