C# “字典” Dictionary 的简单用法:轻松管理键值对

开发 前端
​​Dictionary​​ 是C#中一个非常有用的集合类型,它提供了快速查找和存储键值对的能力。通过本文的介绍,相信你已经掌握了 ​​Dictionary​​ 的基本用法,并能够在你的项目中灵活运用它。

在C#编程中,当我们需要存储和快速查找键值对(比如学生ID对应学生姓名,或者商品编号对应商品价格)时,Dictionary 就成了我们的得力助手。它就像一本字典书,通过“键”可以快速找到对应的“值”。今天,我们就来聊聊 Dictionary 的基本用法,让你轻松上手。

初识 Dictionary

Dictionary 是C#中的一个泛型集合,它存储的是键值对(KeyValuePair<TKey, TValue>)。键(Key)是唯一的,用于标识集合中的每个元素;值(Value)则与键相关联,可以是你想要存储的任何类型的数据。

想象一下,你有一个学生信息表,每个学生的ID是唯一的,而姓名、年龄等信息则与这个ID相关联。使用 Dictionary,你就可以通过学生的ID快速找到他们的信息,而不需要遍历整个集合。

创建和使用 Dictionary

  1. 创建 Dictionary

要创建一个 Dictionary,你需要指定键和值的类型。比如,如果你想要存储学生ID(int类型)和姓名(string类型)的对应关系,可以这样写:

Dictionary<int, string> studentDictionary = new Dictionary<int, string>();
  1. 添加元素

向 Dictionary 中添加元素非常简单,你可以使用 Add 方法,或者直接使用索引器:

studentDictionary.Add(1, "张三");
studentDictionary[2] = "李四";

注意,如果尝试添加一个已经存在的键,Add 方法会抛出一个异常。而使用索引器时,如果键已存在,则会覆盖原有的值。

  1. 访问元素

通过键可以快速访问 Dictionary 中的元素:

string studentName = studentDictionary[1]; // 得到 "张三"

如果尝试访问一个不存在的键,索引器会抛出一个 KeyNotFoundException 异常。为了避免这种情况,你可以使用 TryGetValue 方法:

if (studentDictionary.TryGetValue(3, out string name))
{
    Console.WriteLine(name); // 如果键存在,则输出对应的值
}
else
{
    Console.WriteLine("键不存在");
}
  1. 遍历 Dictionary

你可以使用 foreach 循环来遍历 Dictionary 中的所有键值对:

foreach (KeyValuePair<int, string> student in studentDictionary)
{
    Console.WriteLine($"ID: {student.Key}, 姓名: {student.Value}");
}

或者,如果你只关心键或值,可以使用 Keys 或 Values 属性:

foreach (int id in studentDictionary.Keys)
{
    Console.WriteLine($"ID: {id}");
}

foreach (string name in studentDictionary.Values)
{
    Console.WriteLine($"姓名: {name}");
}
  1. 移除元素

你可以使用 Remove 方法来移除 Dictionary 中的元素:

studentDictionary.Remove(1); // 移除ID为1的学生信息

或者,如果你想清空整个 Dictionary,可以使用 Clear 方法:

studentDictionary.Clear(); // 清空所有元素

注意事项

  • 键必须是唯一的,如果尝试添加重复的键,会抛出异常或覆盖原有值。
  • 访问不存在的键时,索引器会抛出异常,而 TryGetValue 方法则提供了一种更安全的访问方式。
  • Dictionary 的性能依赖于哈希表的实现,因此键的选择对性能有很大影响。尽量避免使用复杂的对象作为键,因为它们可能导致哈希冲突和性能下降。

结语

Dictionary 是C#中一个非常有用的集合类型,它提供了快速查找和存储键值对的能力。通过本文的介绍,相信你已经掌握了 Dictionary 的基本用法,并能够在你的项目中灵活运用它。无论是管理学生信息、商品数据,还是其他需要键值对存储的场景,Dictionary 都将是你的得力助手。

责任编辑:武晓燕 来源: 程序员编程日记
相关推荐

2009-09-10 15:27:16

C# get set

2024-03-12 10:25:14

C#Dictionary编程语言

2013-06-05 09:37:09

WindumpWindump网络命令

2009-12-14 13:27:06

Ruby区间

2014-06-19 10:43:37

AndroidScrollerView平滑滚动

2015-07-28 10:06:03

C#内部实现剖析

2010-08-17 10:39:39

DIVabsoluterelative

2009-08-28 15:49:45

C#对INI文件操作

2010-01-12 10:29:41

Fedora apt软

2009-08-24 18:15:24

C# Dictiona

2015-04-01 14:34:37

C#dynamicDictionary性

2013-06-05 10:11:20

索引器C#

2009-07-24 15:46:00

ASP.NET登陆控件

2011-05-23 13:27:53

2009-08-31 14:45:10

C#扩展方法

2009-09-07 16:13:56

C# MessageB

2009-07-30 15:24:13

C#析构函数C#构造函数

2009-08-20 17:17:02

C#哈希表

2009-08-31 18:32:01

C# ListBoxE

2009-09-17 16:53:15

C#数组
点赞
收藏

51CTO技术栈公众号