C# 在C中查找列表中出现最少的成员#
我有C# 在C中查找列表中出现最少的成员#,c#,.net,list,C#,.net,List,我有列表,其中包含随机数量的条目(大约在10-500之间)。我需要找到发生次数最少的值。例如,list myList有100个“a”、50个“b”、2个“c”和1个“d”,我希望提取“c”和“d”。我的问题是,我永远不会知道每个字符串的确切数字,以及列表中字符串的确切名称 对于类似的类比,请检查以下代码: public class Program { public static void Main(string[] args) { Random r = new R
列表
,其中包含随机数量的条目(大约在10-500之间)。我需要找到发生次数最少的值。例如,list myList
有100个“a”、50个“b”、2个“c”和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);
}
}
}
公共类程序
{
公共静态void Main(字符串[]args)
{
随机r=新随机();
int randomNumber=r.Next(5,15);
int randomRangeOne=r.Next(0,2);
int randomRange2=r.Next(0,2);
List randomList=新列表();
对于(int i=0;i<1000;i++)
{
int x=r.Next(randomNumber-randomRangeOne,randomNumber+randomRange2);
随机列表。添加(x);
}
}
}
在这种情况下(在实际问题中,它是随机字符串,而不是随机整数),我如何提取列表中出现最少的值?从逻辑上考虑这些步骤,如果必须这样做,在现实生活中你会如何做
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);
如果您想获得所有计数最低的值,可以分两步进行
var lowestCount = stringList.GroupBy(x => x)
.Select(x => x.Count())
.Min();
var result = stringList.GroupBy(x => x)
.Where(x => x.Count() == lowestCount)
.Select(x => x.Key);
我使用以下内容作为输入数据:
var stringList = new List<string> { "a", "a", "a", "b", "b", "c", "c", "d","d" };
var stringList=新列表{“a”、“a”、“a”、“b”、“b”、“c”、“c”、“d”、“d”};
使用此输入
结果
保存“b”、“c”、“d”是否要获取字符串中出现最少的字符或出现最少的字符串本身?例如,如果您有“hello”、“hello”、“bye”
,结果是“bye”
或“y”和“b”
?我想要出现最少的字符串本身。在你的例子中,我想说“再见”,类似的类比,请阅读question@doctor查询应该按降序排序,因为问题提到的最少发生的需要被拉取。