You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#统计重复整数次数,期望指定输出格式求助

解决C#整数列表重复次数统计的输出问题

嘿,我一眼就瞅出你代码里的问题了——你在遍历LINQ查询结果的时候,逻辑完全搞反了!

问题根源

你的初始LINQ查询其实是对的:它已经把wordlist里的整数按值分组,统计了每个整数的出现次数,还按次数降序排好了。但后面的foreach循环完全画蛇添足,而且搞错了输出对象:

  • 你每次循环新建了一个只包含当前分组次数的List<int> wordcount
  • 然后去统计这个列表里该次数出现的次数,结果自然是每次都输出「某个次数出现了1次」,完全不是你想要的「某个整数出现了N次」

修正后的代码

直接删掉那些多余的嵌套循环,遍历你的LINQ查询结果就行,因为查询结果里已经包含了你需要的整数(g.Key)和对应的次数(count):

// 你的初始LINQ查询可以保留,这里我把属性名改得更直观(可选)
var numberCounts = from x in wordlist 
                   group x by x into g 
                   let count = g.Count() 
                   orderby count descending 
                   select new { Number = g.Key, Count = count };

// 直接遍历输出即可
foreach (var item in numberCounts)
{
    System.Diagnostics.Debug.WriteLine("\"{0}\" occurs {1} time(s).", item.Number, item.Count);
}

如果你更喜欢用LINQ方法链的写法,也可以这样写:

var numberCounts = wordlist
    .GroupBy(num => num)
    .Select(group => new { Number = group.Key, Count = group.Count() })
    .OrderByDescending(result => result.Count);

效果验证

假设你的wordlist是new List<int> {2,2,2,3,3,5},修正后的代码会输出:

"2" occurs 3 time(s).
"3" occurs 2 time(s).
"5" occurs 1 time(s).

完全符合你想要的格式!

内容的提问来源于stack exchange,提问作者LiLin Sairefu Oteru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:08:52