.NET 中的多键字典
在 .NET 基类库中,字典通常不允许重复的键。在某些需要将多个值与同一个键关联的情况下,这可能会造成限制。
使用专用类处理重复
处理重复键的一种方法是创建自定义包装类。例如,具有字符串键和对象列表作为值的字典可以定义为:
Dictionary<string, List<object>>
虽然此方法提供了一种在单个键下存储多个值的方法,但它可能会变得很麻烦配合使用,尤其是涉及多个键时。
使用查找类
中.NET 3.5 中,Lookup 类解决了字典中重复键的需求。此类表示一个字典,它允许多个键与单个值关联,而不是像传统字典中那样与单个键关联。
要创建 Lookup 对象,您可以使用 Enumerable.ToLookup 扩展方法,该方法将转换将现有序列放入查找字典中。例如,请考虑以下代码:
var dictionary = Enumerable.ToLookup(list, item => item.Key);
在这种情况下,字典将具有重复的键,每个键映射到原始列表中的一系列值。
限制和替代方案
虽然 Lookup 类提供了一种处理重复键的便捷方法,但需要注意的是,它假设以后不会修改词典。根据您的用例,这可能不是一个理想的限制。如果需要修改字典,可能需要探索替代方法。
以上是如何处理 .NET 字典中的重复键?的详细内容。更多信息请关注PHP中文网其他相关文章!