Dictionary<TKey, TValue>
时间: 2024-11-24 22:18:47 浏览: 20
范型List<T> Dictory<key,Value>增加事件功能
`Dictionary<TKey, TValue>`是.NET框架中的一个泛型类,属于System.Collections.Generic命名空间,它是.NET中的一种关联容器(哈希表),用于存储键值对。这里的TKey是键的数据类型,TValue是值的数据类型。
以下是它的主要特性:
1. **查找高效**:通过键(key)进行快速查找,平均时间复杂度为O(1),在理想条件下几乎瞬间完成。
2. **无序**:`Dictionary`不是排序的,插入顺序、删除顺序可能与添加顺序不同。如果你需要保持插入顺序,可以考虑使用`SortedDictionary<TKey, TValue>`或者自定义实现。
3. **唯一键**:每个键(key)在字典中必须是唯一的,如果有重复的键,后面的值会替换前面的值。
4. **线程安全性**:`Dictionary<TKey, TValue>`默认是非线程安全的,但可以使用`ConcurrentDictionary<TKey, TValue>`获取线程安全版本。
5. **自动扩容**:当容量不足以容纳新的元素时,它会自动扩大大小。
6. **支持多种访问方式**:可以通过键获取值(`value = dict[key]`),也可以通过`TryGetValue`方法避免因键不存在而抛异常。
例如:
```csharp
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary.Add("One", 1);
int value;
if (dictionary.TryGetValue("One", out value))
{
Console.WriteLine($"The value is {value}");
}
```
阅读全文