C#是一门强类型语言,拥有许多集合类型,字典(Dictionary)是其中最常用的之一。字典是一种键值对(Key-Value)的集合类型,可以通过键(key)快速地查找对应的值(value),同时也支持添加、删除、修改键值对等操作。
创建字典
在C#中创建字典可以使用Dictionary<TKey, TValue>
类。TKey
代表键的类型,TValue
代表值的类型。下面是一个创建string类型键和int类型值的字典的示例代码:
Dictionary<string, int> dict = new Dictionary<string, int>();
添加键值对
可以使用Add()
方法向字典中添加键值对:
dict.Add("apple", 1);
还可以使用索引器的方式添加键值对:
dict["banana"] = 2;
如果添加时出现键重复的情况,会抛出ArgumentException
异常,可以使用ContainsKey()
方法判断键是否已经存在于字典中。
删除键值对
可以使用Remove()
方法删除键值对:
dict.Remove("apple");
还可以使用Clear()
方法清空字典中所有的键值对。
获取键值对
可以通过键来获取对应的值,如果键不存在于字典中,会抛出KeyNotFoundException
异常。可以使用TryGetValue()
方法判断键是否存在:
bool contains = dict.TryGetValue("banana", out int value);
如果键存在于字典中,方法会将对应的值赋值给value
变量并返回true
,否则返回false
。
还可以使用foreach
循环遍历字典中的键值对:
foreach(var kv in dict)
{
Console.WriteLine("Key: {0}, Value: {1}", kv.Key, kv.Value);
}
示例1:使用字典统计单词出现次数
string str = "hello world, hello csharp";
string[] words = str.Split(' ');
Dictionary<string, int> dict = new Dictionary<string, int>();
foreach (string word in words)
{
if (dict.ContainsKey(word))
{
dict[word]++;
}
else
{
dict.Add(word, 1);
}
}
foreach (var kv in dict)
{
Console.WriteLine("Word: {0}, Count: {1}", kv.Key, kv.Value);
}
输出结果:
Word: hello, Count: 2
Word: world,, Count: 1
Word: csharp, Count: 1
示例2:使用字典实现缓存
Dictionary<string, string> cache = new Dictionary<string, string>();
string GetResultFromDB(string key)
{
// 从数据库获取结果
return "";
}
string GetData(string key)
{
if (cache.ContainsKey(key))
{
return cache[key];
}
else
{
string result = GetResultFromDB(key);
cache.Add(key, result);
return result;
}
}
这个示例演示了如何使用字典实现一个简单的缓存功能,避免频繁访问数据库。在调用GetData()
方法时,先检查缓存中是否存在对应的值,如果存在直接返回;否则从数据库中获取结果,并将结果添加到缓存中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#集合之字典的用法 - Python技术站