首页 > 解决方案 > C# 出现但不使用 LINQ 的解决方案

问题描述

对于 C# 中的给定字符串,计算每个重复自身的 > 字符的出现次数(出现多次)。

例子:

string str = "abcdzefazz"; 

预期输出:

Character a has 2 occurrences. 
Character z has 3 occurrences.

标签: c#find-occurrences

解决方案


好吧,对于No Linq 解决方案,您可以在dictionaryforeach的帮助下使用良好的旧循环。这是性格本身,是发生: Dictionary<char, int>KeyValue

  string str = "abcdzefazz";

  ...

  Dictionary<char, int> occurence = new Dictionary<char, int>();

  foreach (char c in str)
    if (occurence.TryGetValue(c, out value))
      occurence[c] = value + 1;
    else
      occurence.Add(c, 1);

当您想知道字符的出现 ( number) 时ch

  char ch = 'z';

  ...

  int number = occurence.TryGetValue(ch, out value) ? value : 0;   

要打印all occurence,只需遍历字典:

  foreach (var pair in occurence)
    Console.WriteLine($"Character {pair.Key} has {pair.Value} occurrences");

要获取出现次数超过 1 的所有字符,只需添加条件:

  foreach (var pair in occurence)
    if (pair.Value > 1)
      Console.WriteLine($"Character {pair.Key} has {pair.Value} occurrences");

推荐阅读