gpt4 book ai didi

c# - 在C#中获取项目重复的次数

转载 作者:太空狗 更新时间:2023-10-29 22:16:53 34 4
gpt4 key购买 nike

我正在开发一个程序,用户必须在其中输入某种字符串,程序会将其存储在列表或数组中,然后计算该项目重复了多少次。

然后按重复次数降序显示重复次数最多的三个项目(第一个有 10 个重复,第二个有 9 个,第三个有 8 个)

听起来很简单。因为我不知道有多少人会输入一个字符串,所以我使用了一个列表,然后按照这个例子:

foreach (string value in list.Distinct())  
{
System.Diagnostics.Debug.WriteLine("\"{0}\" occurs {1} time(s).", value, list.Count(v => v == value));
}

但出于某种原因,.Distinct() 没有出现在我的列表名称之后。我做错什么了吗?这与我的 C#(不是 C# 3.0)有关吗?该示例从未提及有关添加其他引用等的任何内容。

还有其他方法吗?

最佳答案

.Distinct() 是 LINQ 扩展方法。您需要 .NET 3.5+ 才能使用它。

话虽如此,您不需要 LINQ 来执行您想要的操作。您可以轻松地使用其他集合类和一些算术来获得结果。

// Create a dictionary to hold key-value pairs of words and counts
IDictionary<string, int> counts = new Dictionary<string, int>();

// Iterate over each word in your list
foreach (string value in list)
{
// Add the word as a key if it's not already in the dictionary, and
// initialize the count for that word to 1, otherwise just increment
// the count for an existing word
if (!counts.ContainsKey(value))
counts.Add(value, 1);
else
counts[value]++;
}

// Loop through the dictionary results to print the results
foreach (string value in counts.Keys)
{
System.Diagnostics.Debug
.WriteLine("\"{0}\" occurs {1} time(s).", value, counts[value]);
}

关于c# - 在C#中获取项目重复的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8852179/

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