如何查找字符串列表中出现次数最多的字符串

本文关键字:字符串 列表 何查找 查找 | 更新日期: 2023-09-27 17:50:13

示例输入:

List<string> input = new List<string>();
input.Add("'nHello 'nWorld");
input.Add("My 'nname 'nis 'John");
input.Add("'n'n'n'n Just for fun 'n'n");

目标字符串:"'n"

期望输出:"'n'n'n只是为了好玩'n'n'n 有最多的"'n"并且出现的次数是6"

指出:

  1. 搜索字符串不区分大小写, 'n和'n应被视为2次出现。
  2. 用户将输入要查找的字符串。'n只是一个例子。在上面的例子中,如果用户输入"m",预期的输出将是My 'nname 'nis 'John,其中出现2次

如何查找字符串列表中出现次数最多的字符串

您可以使用:

var MaxIndex =  input.Select((r, i) => 
                new 
                { 
                  OccuranceCount = r.Count(c =>  char.ToUpperInvariant(c) == char.ToUpperInvariant(searchChar)),                         
                  Index = i 
                })
             .OrderByDescending(t => t.OccuranceCount)
             .FirstOrDefault();

那么对于下面的代码:

List<string> input = new List<string>();
input.Add("'nHello 'nWorld");
input.Add("My 'nname 'nis John");
input.Add("'n'n'n'n Just for fun 'n'n");
char searchChar = ''n';
var MaxIndex =  input.Select((r, i) => 
                new 
                { 
                  OccuranceCount = r.Count(c =>  char.ToUpperInvariant(c) == char.ToUpperInvariant(searchChar)),                         
                  Index = i 
                })
             .OrderByDescending(t => t.OccuranceCount)
             .FirstOrDefault();
Console.WriteLine("Line: {0}, Occurance Count: {1}", input[MaxIndex.Index], MaxIndex.OccuranceCount);