gpt4 book ai didi

c# - 获取 IEnumerator 的元素到列表

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

我是 C# 的新手,所以请放轻松。不管怎样,我做了一个数字列表

List<int> numbers = new List<int>();

我想列出每个数字及其计数/频率。

var grouped = numbers
.GroupBy(i => i)
.Select(i => new { Number = i.Key, Count = i.Count() });

在本地,我可以看到组,它有一个 IEnumerator 接口(interface),其中包含所有数字及其计数值 image of what I'm talking about .那么有没有一种方法可以列出这些数字及其频率/计数?

谢谢。

最佳答案

IEnumerable<T>是一个序列,因此它不拥有计数。但是Enumerable.CountIEnumerable<T>的扩展方法

也就是说,您不一定需要转换 IEnumerable<T>进入List<T> :

var grouped = numbers
.GroupBy(i => i)
.Select(i => new { Number = i.Key, Count = i.Count() });

var groupedCount = grouped.Count();

// You may iterate grouped
foreach(var value in grouped)
{
Console.WriteLine($"{value.Number} {value.Count}");
}

如果你真的需要List<T>语义,你只需要调用Enumerable.ToList :

var grouped = numbers
.GroupBy(i => i)
.Select(i => new { Number = i.Key, Count = i.Count() })
.ToList();

另一方面,您可以直接将所有内容转换为 string如下:

var groupText = string.Join("\n", numbers
.GroupBy(i => i)
.Select(i => $"Number: {i.Key} Count: {i.Count()}"))

关于c# - 获取 IEnumerator 的元素到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51080148/

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