我使用的结构可以表示为:
IEnumerable<KeyValuePair<TKey, TValue>>
鉴于编写时间太长(不算代码分析可能会发出警告),我更喜欢使用一些更具表现力的类型。.NET Framework 中是否有这种类型,或者我应该创建自己的类型?
请注意,它与字典不同:
IDictionary<TKey, TValue> : IEnumerable<KeyValuePair<TKey, TValue>>
因为字典确保每个键都是唯一的,这不是我的情况。我也不能使用查找:
Lookup<TKey, TValue> : IEnumerable<IGrouping<TKey, TValue>>
因为查找不是惰性的,即它需要刷新所有数据才能对其进行分组。