摘要
C# 中的 Dictionary 集合是一种高效的数据结构,它可以用来存储键值对。在 C# 中,使用 Dictionary 存储数据非常方便,可以快速地查找和访问数据。在使用 Dictionary 时,需要定义键值对的类型,这样才能添加正确的元素到 Dictionary 中。
Dictionary 集合可以用泛型类型来定义,因此可以使用不同的数据类型来作为键或值。这样可以让我们更灵活地使用 Dictionary 来存储和操作数据。
在创建 Dictionary 时,需要定义键值对的类型。这些类型可以是基本数据类型(如 int、double、bool)或者是复杂数据类型(如 List、Dictionary 等)。
除了添加和访问键值对,Dictionary 集合还提供了许多其他有用的方法,例如 Removing、Count、Clear 等。使用这些方法,我们可以更灵活地管理和操作 Dictionary 集合中的数据。
总之,C# 中的 Dictionary 集合是一种非常强大的数据结构,它可以帮助我们快速、高效地存储和访问数据。通过定义键值对的类型,我们可以灵活地使用 Dictionary 来存储各种类型的数据,并使用各种方法来操作这些数据。
正文
Dictionary的特性:
从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成
任何键都必须是唯一的
键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值
Key和Value可以是任何类型
常见属性和方法
Comparer | 获取用于确定字典中的键是否相等的 IEqualityComparer |
---|
Count | 获取包含在 Dictionary中的键/值对的数目 |
Item | 获取或设置与指定的键相关联的值 |
Keys | 获取包含 Dictionary中的键的集合 |
Values | 获取包含 Dictionary中的值的集合 |
Add | 将指定的键和值添加到字典中 |
Clear | 从 Dictionary中移除所有的键和值 |
ContainsKey | 确定 Dictionary是否包含指定的键 |
ContainsValue | 确定 Dictionary是否包含特定值 |
GetEnumerator | 返回循环访问 Dictionary的枚举数 |
GetType | 获取当前实例的 Type (从 Object 继承) |
Remove | 从 Dictionary中移除所指定的键的值 |
ToString | 返回表示当前 Object的 String (从 Object 继承) |
TryGetValue | 获取与指定的键相关联的值 |
初使化
Dictionary<int, string> dic = new Dictionary<int, string>();
添加元素
private void btnAdd_Click(object sender, EventArgs e)
{
dic.Add(1, "张飞");
dic.Add(2, "刘备");
dic.Add(3, "关羽");
dic.Add(4, "曹操");
dic.Add(5, "孙权");
}
通过Key查找元素
private void btnKeySearch_Click(object sender, EventArgs e)
{
var key = int.Parse(txtKey.Text);
if (dic.ContainsKey(key))
{
MessageBox.Show(dic[key]);
}
}
遍历元素
private void btnForAll_Click(object sender, EventArgs e)
{
foreach (var item in dic)
{
lstAll.Items.Add(item.Key + " " + item.Value);
}
}
仅遍历键 Keys 属性
private void btnKey_Click(object sender, EventArgs e)
{
foreach (var item in dic.Keys)
{
MessageBox.Show(item.ToString());
}
}
仅遍历Values
private void btnValue_Click(object sender, EventArgs e)
{
foreach (var item in dic.Values)
{
MessageBox.Show(item.ToString());
}
}
通过Key删除
private void btnDelete_Click(object sender, EventArgs e)
{
dic.Remove(1);//通过Key删除
}
该文章在 2024/2/19 18:09:07 编辑过