📜  C#字典(1)

📅  最后修改于: 2023-12-03 15:14:32.642000             🧑  作者: Mango

C#字典

C#字典是一种称为“键/值”集合的数据结构,其中每个元素都由一个唯一的键和一个值组成。键是用于访问和检索值的标识符,每个键必须是唯一的。值可以是任何可以存储在变量中的对象,可以是任何引用类型或值类型。C#字典可以用来存储、检索和操作数据,特别适用于大数据量、快速查找和数据分类等任务。

创建字典

使用Dictionary<TKey, TValue>类来创建字典。其中,TKey表示键的类型,TValue表示值的类型。可以使用多种方式添加元素到字典中,如Add()方法、索引器、集合初始化和键/值对集合初始化。下面是几种常见的创建字典的方式。

使用Add()方法
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "John");
dict.Add(2, "Mary");
dict.Add(3, "Bob");
使用索引器
Dictionary<int, string> dict = new Dictionary<int, string>();
dict[1] = "John";
dict[2] = "Mary";
dict[3] = "Bob";
使用集合初始化
Dictionary<int, string> dict = new Dictionary<int, string>()
{
    { 1, "John" },
    { 2, "Mary" },
    { 3, "Bob" }
};
使用键/值对集合初始化
var dict = new Dictionary<int, string>()
{
    [1] = "John",
    [2] = "Mary",
    [3] = "Bob"
};
访问字典元素

使用键作为索引器来访问字典中的元素,如果键不存在会抛出KeyNotFoundException异常。也可以使用TryGetValue()方法来安全访问字典中的元素。

// 使用索引器
Console.WriteLine(dict[1]); // 输出 "John"
Console.WriteLine(dict[4]); // 抛出异常

// 使用TryGetValue()方法
if (dict.TryGetValue(1, out string name))
{
    Console.WriteLine(name); // 输出 "John"
}
if (dict.TryGetValue(4, out string _))
{
    // 执行不到这里
}
遍历字典

可以使用foreach循环遍历字典中的键/值对集合。

foreach (var pair in dict)
{
    Console.WriteLine($"{pair.Key}: {pair.Value}");
}

也可以遍历字典中的键或值的集合。

foreach (int key in dict.Keys)
{
    Console.WriteLine(key);
}

foreach (string value in dict.Values)
{
    Console.WriteLine(value);
}
修改字典元素

可以使用索引器或Add()方法来修改字典中的元素。

// 使用索引器
dict[1] = "Mike";

// 使用Add()方法
dict.Add(4, "Lily");
删除字典元素

可以使用Remove()方法来删除字典中的元素。

dict.Remove(1);
判断字典是否包含某个键或值

可以使用ContainsKey()或ContainsValue()方法来判断字典是否包含某个键或值。

if (dict.ContainsKey(1))
{
    Console.WriteLine("字典中包含键1");
}

if (dict.ContainsValue("John"))
{
    Console.WriteLine("字典中包含值John");
}
小结

C#字典提供了一种灵活、高效的数据结构,可以用于存储、检索和操作数据。掌握字典的基本操作可以极大地提高编程效率和代码质量。