摘要
C# 中使用字典Dictionary来存储键值对的数据。创建字典时需要定义键值对的类型,再添加字典元素时需要符合定义的键值对类型。
要使用Dictionary集合,需要导入C#泛型命名空间
System.Collections.Generic
正文
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删除
}