给定一个字典,是否可以提取键具有所需哈希码的条目的集合?所以输出应该是List<keyValuePair>
。
我的字典中的每一项都有一个覆盖的GetHashCode()
方法,它故意允许冲突。它的设计仅适用于项目的name
。
它们的Equals()
函数解决了这些冲突。它检查name
和quantity
成员变量
inb4:存储列表字典对我来说不是一个选项
编辑:它需要比O(n(复杂度更快,最终就像直接访问一个bucket,并从中复制
是的,您可以使用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 );