优秀的编程知识分享平台

网站首页 > 技术文章 正文

128.C# Dictionary字典

nanyue 2024-12-07 15:46:03 技术文章 8 ℃

摘要


C# 中使用字典Dictionary来存储键值对的数据。创建字典时需要定义键值对的类型,再添加字典元素时需要符合定义的键值对类型。

要使用Dictionary集合,需要导入C#泛型命名空间

System.Collections.Generic

正文


Dictionary的特性:

  1. 从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成
  2. 任何键都必须是唯一的
  3. 键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值
  4. 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删除
}
最近发表
标签列表