什么是字典?
C# 中的字典(Dictionary)是一种集合类型,用于存储键-值对。它提供了高效的查找操作,通过使用键来访问对应的值。在 C# 中,字典类被实现为泛型类型 Dictionary<TKey, TValue>
,其中 TKey
是键的类型,TValue
是值的类型。
创建字典
可以使用 new
关键字来创建一个新的字典对象,例如:
Dictionary<string, int> studentGrades = new Dictionary<string, int>();
添加和访问元素:
使用 Add
方法可以向字典中添加新的键-值对,使用方括号语法或 TryGetValue
方法可以访问字典中的元素,例如:
studentGrades.Add("Alice", 90);
int grade = studentGrades["Alice"];
int value;
if (studentGrades.TryGetValue("Alice", out value))
{
// 存在键为 "Alice" 的元素
}
更新元素:
如果指定的键已经存在于字典中,可以直接通过赋值语句来更新对应的值,例如:
studentGrades["Alice"] = 95;
移除元素:
使用 Remove
方法可以从字典中移除指定的键-值对,例如:
studentGrades.Remove("Alice");
遍历字典:
可以使用 foreach
循环遍历字典中的键-值对,例如:
foreach (KeyValuePair<string, int> kvp in studentGrades)
{
string name = kvp.Key;
int grade = kvp.Value;
// 使用键和值进行操作
}
字典的性能:
字典在内部使用哈希表来实现快速的查找操作,因此可以在 O(1) 的时间复杂度内访问元素。但是,字典并不保持元素的顺序。
注意事项:
字典中的键必须是唯一的,如果尝试向字典中添加重复的键,则会引发异常。如果需要存储多个具有相同键的值,可以考虑使用其他集合类型,例如 List<T>
或 HashSet<T>
。
示例
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 创建一个字典
Dictionary<string, int> studentGrades = new Dictionary<string, int>();
// 添加键值对
studentGrades.Add("Alice", 90);
studentGrades.Add("Bob", 85);
studentGrades.Add("Charlie", 92);
// 访问字典中的值
int aliceGrade = studentGrades["Alice"];
Console.WriteLine("Alice's grade: " + aliceGrade);
// 修改字典中的值
studentGrades["Bob"] = 88;
// 遍历字典
foreach (KeyValuePair<string, int> kvp in studentGrades)
{
Console.WriteLine(kvp.Key + ": " + kvp.Value);
}
// 检查字典中是否包含指定的键
bool containsBob = studentGrades.ContainsKey("Bob");
Console.WriteLine("Contains Bob? " + containsBob);
// 删除字典中的键值对
studentGrades.Remove("Charlie");
// 清空字典
studentGrades.Clear();
}
}