使用 C# 中的 Dictionary
数据结构
在 C# 中,Dictionary<TKey, TValue>
是一个非常强大的数据结构,用于存储键值对。它提供了高效的查找、插入和删除操作,适用于需要快速访问数据的场景。本文将通过一个简单的示例,介绍如何使用 Dictionary
来进行常见的操作。
创建和初始化字典
Dictionary
是一个泛型集合,需要指定键和值的类型。以下代码展示了如何创建一个 Dictionary<int, int>
并添加键值对:
cs
// 创建一个新的 Dictionary<int, int> 实例
Dictionary<int, int> keyValues = new Dictionary<int, int>();
// 添加键值对到字典中
keyValues.Add(0, 100);
keyValues.Add(1, 200);
keyValues.Add(2, 300);
访问和检查字典
通过键可以快速访问字典中的值,同时也可以检查字典是否包含某个键或值:
cs
// 通过键来访问值
int value = keyValues[2]; // 获取键为 2 的值
// 检查字典中是否包含某个键
bool containKey = keyValues.ContainsKey(3); // 返回 false
// 检查字典中是否包含某个值
bool containValue = keyValues.ContainsValue(100); // 返回 true
更新和删除键值对
字典中的值可以通过键直接更新,也可以通过键删除某个键值对:
cs
// 更新字典中某个键对应的值
keyValues[1] = 10; // 将键为 1 的值更新为 10
// 移除字典中的某个键值对
keyValues.Remove(2); // 移除键为 2 的键值对
遍历字典
Dictionary
提供了多种遍历方式,包括遍历键值对、键集合或值集合:
cs
// 遍历字典中的所有键值对
foreach (KeyValuePair<int, int> kvp in keyValues)
{
Console.WriteLine($"Key={kvp.Key}, Value={kvp.Value}");
}
// 或者只遍历键或值
foreach (int key in keyValues.Keys)
{
Console.WriteLine($"Key={key}");
}
foreach (int value in keyValues.Values)
{
Console.WriteLine($"Value={value}");
}
其他常用操作
-
检查字典是否为空 :通过检查
Count
属性是否为 0 来判断字典是否为空。 -
获取字典中元素的数量 :通过
Count
属性获取字典中的键值对数量。
cs
// 检查字典是否为空
bool isEmpty = keyValues.Count == 0; // 返回 false
// 获取字典中元素的数量
int count = keyValues.Count; // 返回 2
示例代码完整版
以下是完整的代码示例,展示了上述所有操作:
cs
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 创建一个新的 Dictionary<int, int> 实例
Dictionary<int, int> keyValues = new Dictionary<int, int>();
// 添加键值对到字典中
keyValues.Add(0, 100);
keyValues.Add(1, 200);
keyValues.Add(2, 300);
// 通过键来访问值
int value = keyValues[2];
// 检查字典中是否包含某个键/某个值
bool containKey = keyValues.ContainsKey(3);
bool containValue = keyValues.ContainsValue(100);
// 更新字典中某个键对应的值
keyValues[1] = 10;
// 移除字典中的某个键值对
keyValues.Remove(2);
// 遍历字典中的所有键值对
foreach (KeyValuePair<int, int> kvp in keyValues)
{
Console.WriteLine($"Key={kvp.Key}, Value={kvp.Value}");
}
// 或者只遍历键或值
foreach (int key in keyValues.Keys)
{
Console.WriteLine($"Key={key}");
}
foreach (int value in keyValues.Values)
{
Console.WriteLine($"Value={value}");
}
// 检查字典是否为空
bool isEmpty = keyValues.Count == 0;
// 获取字典中元素的数量
int count = keyValues.Count;
Console.ReadKey();
}
}
通过以上代码,你可以快速掌握 Dictionary
的基本操作,从而在实际开发中高效地使用这一数据结构。