哪个数字出现频率最高,出现了多少次

  • 本文关键字:多少次 频率 数字 c#
  • 更新时间 :
  • 英文 :


我是C#的新手,我想知道更有经验的程序员将如何解决这个问题。在这段代码中,是一个包含一组数字和字母的私有常量字符串。我需要我的程序找出哪个数字出现频率最高,出现了多少次,然后吐出结果。

public class Program
{
private const string FileContents = ""12345.56789","12345.56789","12345.56789","12345.56789"";
public static void Main()
{
}
}

您可以对每个数字/单词使用GroupBy,然后检查每个组中元素的计数,

private const string FileContents = ""12345.56789","12345.56789","12345.56789","12345.56789"";
var mostFrequent = FileContents
.Split(',')
.GroupBy(x => x)
.Select(x => new {Key = x.Key, Count = x.Count()})
.OrderByDescending(x => x.Count)
.FirstOrDefault();

mostFrequent变量将包含给定const字符串中出现次数最多的数字或单词(字母(。


如果你只想要数字而不是一个单词,那么你必须将拆分数组过滤成数字数组,就像下面的一样

var mostFrequentNumber = FileContents
.Split(',')
.Select(x => x.Trim("""))  //Remove leading and trailing "
.Where(x => float.TryParse(x, out _)) //Check string is numeric or not
.GroupBy(x => x)
.Select(x => new {Key = x.Key, Count = x.Count()})
.OrderByDescending(x => x.Count)
.FirstOrDefault();

您可以按照以下步骤进行:

  1. 将字符串解析为数字集合
  2. 组号(组号应包含组号本身及其出现次数(
  3. 按出现次数排序(按降序(,并取第一个(因此是出现次数最多的一个(
  4. 从组中提取数字

相关内容

最新更新