C#中类型Lookup<>的使用
时间: 2024-02-05 17:12:15 浏览: 93
Lookup<TKey, TElement> 类型表示一个键到一组值的映射。与 Dictionary<TKey, TValue> 类型不同,Lookup 类型可以将一个键映射到多个值,这些值被组织在一个 IEnumerable<TElement> 集合中。Lookup 类型通常用于需要对数据进行分组的场景。
以下是 Lookup 类型的使用示例:
```csharp
// 创建一个 Lookup 对象
var lookup = new Lookup<string, int>();
// 添加键值对到 Lookup 对象中
lookup.Add("A", 1);
lookup.Add("A", 2);
lookup.Add("B", 3);
// 获取键为 "A" 的所有值
var valuesA = lookup["A"];
// 遍历 Lookup 对象中的所有键值对
foreach (var group in lookup)
{
var key = group.Key;
var values = group.ToList();
Console.WriteLine($"Key: {key}, Values: {string.Join(",", values)}");
}
```
上述示例中,我们首先创建了一个 Lookup 对象,并向其中添加了三个键值对。其中,“A”键对应了两个值,而“B”键仅对应了一个值。接着,我们通过索引器获取了键为“A”的所有值,并遍历了 Lookup 对象中的所有键值对,输出了它们的键和值。
需要注意的是,Lookup 类型是只读的,它不能直接修改其内部的键值对。如果需要修改 Lookup 对象中的键值对,可以通过创建一个新的 Lookup 对象,并将原 Lookup 对象中的数据转换成新的 Lookup 对象来实现。
阅读全文