C# 如何返回字符串中重复字母的数量

C# 如何返回字符串中重复字母的数量,c#,C#,我试图获取用户的输入,以便返回他们有多少重复字符 这就是我获得输入的方式 Console.WriteLine("Input a word to reveal duplicate letters"); string input = Console.ReadLine(); 例如,代码应返回如下内容: 字符串“编程”中的重复字符列表 g:2 r:2 m:2 如何查找重复的字母并在字符串中计数?是的,您可以使用System.Linq GroupBy对字符串按字符值进行分组,然后过滤

我试图获取用户的输入,以便返回他们有多少重复字符

这就是我获得输入的方式

  Console.WriteLine("Input a word to reveal duplicate letters");
        string input = Console.ReadLine();
例如,代码应返回如下内容:

字符串“编程”中的重复字符列表

g:2

r:2

m:2


如何查找重复的字母并在字符串中计数?

是的,您可以使用System.Linq GroupBy对字符串按字符值进行分组,然后过滤生成的具有1个以上值的组,如下所示:

var word = "Hello World!";
var multipleChars = word.GroupBy(c => c).Where(group => group.Count() > 1);
foreach (var charGroup in multipleChars)
{
    Console.WriteLine(charGroup .Key + " : " + charGroup .Count());
}

这将包括区分大小写以及排除非字母数字字符

var sample = Console.ReadLine();
var letterCounter = sample.Where(char.IsLetterOrDigit)
                    .GroupBy(char.ToLower)
                    .Select(counter => new { Letter = counter.Key, Counter = counter.Count() })
                    .Where(c=>c.Counter>1);

foreach (var counter in letterCounter){
    Console.WriteLine(String.Format("{0} = {1}", counter.Letter,counter.Counter));
}

你需要尝试一下!它并没有那么复杂,定义了单步执行,我要告诉你们两件事,你们应该能够知道怎么做:1字符串实现IEnumerable。2您可以使用以下方法将IEnumerable拆分为同一个字符的组:[准确地说是2作为计数?或者只是一个普通的柱状图?这里的x是什么?您的意思是单词?@Grisgram是的,请注意toLower可能不适用于非西方字符,如turquish i。