C#中Dictionary的用法
时间: 2024-09-14 10:12:37 浏览: 43
C# 中的 `Dictionary` 是一个泛型类,位于 `System.Collections.Generic` 命名空间中。它是一个集合,用于存储键值对,其中每个键都是唯一的。`Dictionary` 类似于现实生活中的字典,其中键对应于单词,而值对应于单词的定义。
以下是一些基本的 `Dictionary` 用法:
1. 创建 `Dictionary` 对象:
```csharp
Dictionary<TKey, TValue> dictionary = new Dictionary<TKey, TValue>();
```
这里 `<TKey>` 是键的类型,`<TValue>` 是值的类型。
2. 添加元素:
```csharp
dictionary.Add("key1", "value1"); // 使用 Add 方法添加键值对
```
或使用索引器:
```csharp
dictionary["key2"] = "value2"; // 直接使用键来设置值
```
3. 访问元素:
```csharp
if (dictionary.TryGetValue("key1", out TValue value))
{
// 使用 value 变量访问值
}
```
4. 移除元素:
```csharp
dictionary.Remove("key1"); // 通过键来移除键值对
```
5. 遍历 `Dictionary`:
```csharp
foreach (KeyValuePair<TKey, TValue> pair in dictionary)
{
Console.WriteLine("Key: {0}, Value: {1}", pair.Key, pair.Value);
}
```
6. 获取所有键或值:
```csharp
IEnumerable<TKey> keys = dictionary.Keys;
IEnumerable<TValue> values = dictionary.Values;
```
7. 检查键是否存在:
```csharp
bool containsKey = dictionary.ContainsKey("key1"); // 返回一个布尔值表示是否存在
```
8. 获取或设置默认值:
```csharp
TValue defaultValue;
if (!dictionary.TryGetValue("key1", out defaultValue))
{
defaultValue = default(TValue); // 使用默认值
}
```
9. 获取键值对数量:
```csharp
int count = dictionary.Count;
```
10. 清空 `Dictionary`:
```csharp
dictionary.Clear();
```
使用 `Dictionary` 时需要考虑线程安全问题,如果在多线程环境中操作,可以考虑使用 `ConcurrentDictionary` 或者在操作时加锁。
阅读全文