在 C# 字典中添加和增加键和值

Add & Increment the Key and Value in C# dictionary

我正在创建一个计数器,用于计算每个字符在字符串中出现的次数,然后将结果打印到控制台。

让我们使用这个示例字符串:

string myString = "The pen is mightier."

我希望结果是

T : 2
h : 2
e : 3
  : 2
p : 1
n : 1
i : 3
s : 1
m : 1
g : 1
r : 1
. : 1

我已将字符串转换为字符数组。

char[] charactersInString = myString.ToCharArray();

我创建了一个字典来存储字母和计数。

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

我遍历了 characterInString 数组中的每个字母,我不确定当字典不包含键时如何初始化和添加新对,或者只有当它包含时如何更新值钥匙?

使用 LINQ 非常简单。

var dictionary = myString.GroupBy( x => x ).ToDictionary( x => x.Key, x => x.Count );

如果要将大写和小写视为相同,请预先将字符串强制转换为大写:

var dictionary = myString.ToUpper().GroupBy( x => x ).ToDictionary( x => x.Key, x => x.Count );

如果您想以传统方式进行操作,则需要一个循环。

var dictionary = new Dictionary<char,int>();
foreach (var character in myString.ToUpper())
{
    if (dictionary.ContainsKey(character)) 
    {
        dictionary[character]++;
    }
    else
    {
        dictionary.Add(character, 1);
    }
}