美文网首页
C#-字符串中出现次数最多的字符以及出现的次数

C#-字符串中出现次数最多的字符以及出现的次数

作者: 清流泉 | 来源:发表于2019-09-29 20:07 被阅读0次
    using System;
    using System.Collections.Generic;
    using System.Linq;
    
    namespace MaxCountChar
    {
        class Program
        {
            static void Main(string[] args)
            {
                const string str = @"jintiantianqihaoqinglang";
                DictionaryMethod(str);
                LinqMethod(str);
    
                Console.ReadKey();
            }
    
            private static void DictionaryMethod(string str)
            {
                var charArray = str.ToCharArray();
                var dictionary = new Dictionary<char, int>();
                foreach (var c in charArray)
                {
                    dictionary[c] = dictionary.Keys.Contains(c) ? ++dictionary[c] : 1;
                }
    
                var max = dictionary.Values.Max();
                var keys = dictionary.Keys.Where(key => dictionary[key] == max);
                foreach (var key in keys)
                {
                    Console.WriteLine($"出现次数最多的字符:{key} ~ 出现次数:{max}");
                }
            }
    
            private static void LinqMethod(string str)
            {
                var query =
                     (from c in str.ToCharArray()
                      group c by c into g
                      select new { g.Key, Count = g.Count() })
                     .ToList();
                var max = query.Max(item => item.Count);
                var gs = query.Where(g => g.Count == max);
                foreach (var g in gs)
                {
                    Console.WriteLine($"出现次数最多的字符:{g.Key} ~ 出现次数:{max}");
                }
            }
        }
    }
    
    输出结果

    相关文章

      网友评论

          本文标题:C#-字符串中出现次数最多的字符以及出现的次数

          本文链接:https://www.haomeiwen.com/subject/syjqpctx.html