C#使用泛型集合Dictionary

C#使用泛型集合Dictionary用户输入一句话,统计出现频率最高的字的显示... C#使用泛型集合Dictionary 用户输入一句话,统计出现频率最高的字的显示 展开
 我来答
freeeeeewind
2017-12-06 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1312万
展开全部

见以下代码和注释

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication11
{

    class Word
    {
        // 字
        public char C { get; set; }
        // 出现的次数
        public int Count { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //输入一句话
            string s = Console.ReadLine();
            // 集合
            Dictionary<char, Word> words = new Dictionary<char, Word>();

            // 添加到集合words
            foreach (char c in s)
            {
                if(words.ContainsKey(c))
                {
                    words[c].Count++;
                }
                else
                {
                    Word word = new Word { C = c, Count = 1 };
                    words.Add(c, word);
                }
            }

            // 使用Linq,查找出现次数最大值,
            int max = words.Values.Max(x => x.Count);
            // 使用Linq,查找最大值对应的元素。注意:最大值也许有多个
            var qry = words.Values.Where(x => x.Count == max);

            // 输出
            Console.WriteLine("频率最高的字");
            foreach(var q in qry )
            {
                Console.WriteLine("{0}:{1}", q.C, q.Count);
            }
        }
    }
}

运行

(1)输入:我我我我你你你你

(2)输入:我的你的他的我们的他们的

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式