C#的Dictionary类使用说明

一:Dictionary类简单说明

1)Dictionary<TKey,TValue>泛型类提供从一组键到一组值的映射。 每次对字典的添加都包含一个值和与其关联的键。 通过使用其键检索值的速度非常快,接近 O (1) ,因为类 Dictionary<TKey,TValue> 作为哈希表实现。
2)Dictionary<TKey,TValue>的容量是可以保留的元素数。 随着元素添加,通过重新分配内部数组,容量会自动增加。

二:Dictionary类的构造函数

构造函数构造函数说明
Dictionary<TKey,TValue>()初始化 Dictionary<TKey,TValue> 类的新实例,该实例为空且具有默认的初始容量,并使用键类型的默认相等比较器。
Dictionary<TKey,TValue>(IDictionary<TKey,TValue>)初始化 Dictionary<TKey,TValue> 类的新实例,该实例包含从指定的 IDictionary<TKey,TValue> 中复制的元素并为键类型使用默认的相等比较器。
Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer)初始化 Dictionary<TKey,TValue> 类的新实例,该实例包含从指定的 IDictionary<TKey,TValue> 中复制的元素并使用指定的 IEqualityComparer。
Dictionary<TKey,TValue>(IEqualityComparer)初始化 Dictionary<TKey,TValue> 类的新实例,该实例为空,具有默认的初始容量并使用指定的 IEqualityComparer。
Dictionary<TKey,TValue>(Int32)初始化 Dictionary<TKey,TValue> 类的新实例,该实例为空且具有指定的初始容量,并为键类型使用默认的相等比较器。
Dictionary<TKey,TValue>(Int32, IEqualityComparer)初始化 Dictionary<TKey,TValue> 类的新实例,该实例为空,具有指定的初始容量并使用指定的 IEqualityComparer。
Dictionary<TKey,TValue>(SerializationInfo, StreamingContext)用序列化数据初始化 Dictionary<TKey,TValue> 类的新实例。

三:Dictionary类的属性

属性属性说明
Comparer获取用于确定字典中的键是否相等的 IEqualityComparer。
Count获取包含在 Dictionary<TKey,TValue> 中的键/值对的数目
Item[TKey]获取或设置与指定的键关联的值
Keys获得一个包含 Dictionary<TKey,TValue> 中的键的集合。
Values获得一个包含 Dictionary<TKey,TValue> 中的值的集合。

四:Dictionary 类的常用方法

1: Dictionary<TKey,TValue>.Add(TKey, TValue)的方法介绍

1)作用:将指定的键和值添加到字典中。
2)语法:

public void Add (TKey key, TValue value);

3)使用举例:

//  在词典中添加一些元素。没有重复的键,但有些值是重复的。
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");

// 如果新键已在词典中,则Add方法引发异常。
try
{
    openWith.Add("txt", "winword.exe");
}
catch (ArgumentException)
{
    Console.WriteLine("键值为 = \"txt\" 的元素,已经存在.");
}

foreach (var item in openWith)
{
    Console.WriteLine(item);
}

4)运行结果:

键值为 = "txt" 的元素,已经存在.
[txt, notepad.exe]
[bmp, paint.exe]
[dib, paint.exe]
[rtf, wordpad.exe]

2: Dictionary<TKey,TValue>.Clear的方法介绍

1)作用:将所有键和值从 Dictionary<TKey,TValue> 中移除。
2)语法:

public void Clear ();

3: Dictionary<TKey,TValue>.ContainsKey(TKey) 的方法介绍

1)作用:确定是否 Dictionary<TKey,TValue> 包含指定键。
2)语法:

public bool ContainsKey (TKey key);

3)使用举例:

//统计 Wellcome to china中的每个字符出现的次数 不考虑大小写
//字符     ----- 键
//出现次数  ----- 值
string str = "Wellcome to china";
Dictionary<char, int> dic = new Dictionary<char, int>();

for (int i = 0; i < str.Length; i++)
{
    if (str[i] == ' ')
    {
        continue;//跳出单次循环,进行下一次循环
    }
    //如果dic已经包含了当前循环到这个键
    if (dic.ContainsKey(str[i]))
    {
        dic[str[i]]++;//值,再次加1
    }
    else//说明是第一次出现
    {
        dic[str[i]] = 1;
    }
}

foreach (KeyValuePair<char, int> kv in dic)
{
    Console.WriteLine("字母{0}出现了{1}次", kv.Key, kv.Value);
}

4)运行结果:

字母W出现了1次
字母e出现了2次
字母l出现了2次
字母c出现了2次
字母o出现了2次
字母m出现了1次
字母t出现了1次
字母h出现了1次
字母i出现了1次
字母n出现了1次
字母a出现了1次

4: Dictionary<TKey,TValue>.ContainsValue(TValue) 的方法介绍

1)作用:确定 Dictionary<TKey,TValue> 是否包含特定值。
2)语法:

public bool ContainsValue (TValue value);

5: Dictionary<TKey,TValue>.Remove 的方法介绍

1)作用:从 Dictionary<TKey,TValue> 中移除所指定的键的值。
2)语法:

public bool Remove (TKey key);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值