gpt4 book ai didi

c# - 在 C# 列表中查找最少出现的成员

转载 作者:行者123 更新时间:2023-11-30 13:36:04 25 4
gpt4 key购买 nike

我有 list<string>具有随机数量的条目(介于 10-500 之间)。我需要找到出现次数最少的值。例如,list<string> myList100 "a", 50 "b", 2 "c", and 1 "d" ,我想提取“c”和“d”。我的问题是我永远不会知道每个字符串的确切编号,以及列表中字符串的确切名称。

对于类似的类比,检查下面的代码:

public class Program
{
public static void Main(string[] args)
{
Random r = new Random();

int randomNumber = r.Next(5,15);
int randomRangeOne = r.Next(0,2);
int randomRangeTwo = r.Next(0,2);

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

for(int i = 0; i < 1000; i++)
{
int x = r.Next(randomNumber - randomRangeOne, randomNumber + randomRangeTwo);
randomList.Add(x);
}
}
}

在这种情况下(在实际问题中,它是随机字符串,而不是随机整数),我将如何提取列表中最少出现的值?

最佳答案

这是一个简单的 LINQ

var leastOccured = data
.GroupBy(x => x)
.OrderBy(group => group.Count())
.Select(x => x.Key)
.First();

您将相同的字符串分组,按每组的编号升序对它们进行排序,并取第一个最少出现的字符串。

如果可以有多个字符串具有相同的出现次数你可以使用下面的代码

var ordered = data
.GroupBy(x => x)
.Select(group => new { group.Key, Count = group.Count() })
.OrderBy(x => x.Count);

var minOccurrenceCount = ordered.First().Count;

var leastOccurredStrings = ordered
.TakeWhile(x => x.Count == minOccurrenceCount)
.Select(x => x.Key);

关于c# - 在 C# 列表中查找最少出现的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40495820/

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