给定一个字典,是否可以提取其关键字具有所需哈希码的条目的集合?所以输出应该是List<keyValuePair>
。
我的字典中的每个条目都有一个被覆盖的GetHashCode()
方法,它故意允许冲突。它被设计成只与项目的name
一起工作。
它们的Equals()
函数解决了这些冲突。它检查name
和quantity
成员变量
inb4:存储列表字典对我来说不是一个选择
编辑:它需要比O(n)复杂度更快,最终就像直接访问存储桶,并从中复制一份
发布于 2018-07-10 08:12:03
可以,您可以使用LINQ来过滤字典:
var list = dictionary.Where( pair => pair.Value.GetHashCode() == hashCode );
这将为您提供一个IEnumerable<KeyValuePair<T>>
。当然,您可以使用ToDictionary
将其转换回字典:
var dict = dictionary
.Where( pair => pair.Value.GetHashCode() == hashCode );
.ToDictionary( pair => pair.Key, pair => pair.Value );
https://stackoverflow.com/questions/51255539
复制相似问题