下面是详细讲解C#中Dictionary的作用及用法讲解的攻略。
什么是Dictionary
Dictionary是C#中的一种数据结构,它可以存储一组键值对,而且键和值的类型可以自定义。它类似于数组和列表,但是在查找或修改元素时,它比数组和列表更快。
如何使用Dictionary
使用Dictionary需要引入命名空间System.Collections.Generic。
我们可以通过以下代码来创建一个Dictionary:
Dictionary<string, int> dict = new Dictionary<string, int>();
上面的代码创建了一个Dictionary,它的键和值分别是字符串和整数。同时,我们也可以使用自定义的类型作为键或值,只需要把关键字string和int替换成自定义类型即可。
向Dictionary中添加键值对,可以使用Add()方法:
dict.Add("apple", 1);
dict.Add("banana", 2);
上面的代码向Dictionary中添加了两个键值对。在Dictionary中,键是唯一的,所以如果我们再次向同一个键中添加值,则会抛出ArgumentException异常。
查找键值对可以使用ContainsKey()方法:
if (dict.ContainsKey("apple"))
{
int count = dict["apple"];
Console.WriteLine("The count of apple is {0}", count);
}
上面的代码判断Dictionary中是否包含键为“apple”的元素,如果包含,则取出对应的值。
修改键值对可以直接通过索引访问:
dict["apple"] = 3;
上面的代码将键为“apple”的值修改为3。
删除键值对可以使用Remove()方法:
dict.Remove("banana");
上面的代码删除键为“banana”的键值对。
我们还可以使用Count属性来获取Dictionary中键值对的数量:
int count = dict.Count;
示例说明
示例1
下面是一个简单的示例:根据学生姓名查找其成绩。
Dictionary<string, double> scores = new Dictionary<string, double>();
scores.Add("小明", 90.5);
scores.Add("小红", 80.0);
scores.Add("小华", 95.0);
string name = "小红";
if (scores.ContainsKey(name))
{
double score = scores[name];
Console.WriteLine("{0}的成绩是{1}", name, score);
}
else
{
Console.WriteLine("没有找到{0}的成绩", name);
}
上面的代码创建了一个Dictionary并添加了三个键值对,然后根据学生姓名查找其成绩。如果找到了,则输出对应的成绩,否则输出“没有找到该学生的成绩”。
示例2
下面是一个稍微复杂一些的示例:对一个单词计数,并输出出现次数最多的前三个单词。
string text = "the quick brown fox jumps over the lazy dog the lazy dog the lazy dog";
string[] words = text.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
Dictionary<string, int> counts = new Dictionary<string, int>();
foreach (string word in words)
{
if (counts.ContainsKey(word))
{
counts[word]++;
}
else
{
counts[word] = 1;
}
}
var top3 = counts.OrderByDescending(x => x.Value).Take(3);
foreach (var item in top3)
{
Console.WriteLine("{0}: {1}", item.Key, item.Value);
}
上面的代码先将字符串分割成单词数组,然后遍历每个单词,用Dictionary统计每个单词的出现次数。最后使用LINQ的OrderByDescending和Take方法找出出现次数最多的前三个单词,并输出它们的出现次数。
总结
Dictionary是在C#中进行键值对操作的常用数据结构,其使用方便,能够快速地查找、修改、删除元素。同时,我们还可以通过自定义类型作为键或值来实现更加灵活的操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中Dictionary的作用及用法讲解 - Python技术站