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

时间:2020-10-06 21:15:41

标签: c# dictionary key-value

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

让我们使用以下示例字符串:

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数组中的每个字母,并且不确定在字典中不包含键时如何初始化和添加新对,或者仅在字典中包含键时如何更新值?

1 个答案:

答案 0 :(得分:1)

使用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);
    }
}
相关问题