C#使用泛型集合Dictionary
1个回答
展开全部
见以下代码和注释
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)输入:我的你的他的我们的他们的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询