从字典中获取冲突列表



给定一个字典,是否可以提取键具有所需哈希码的条目的集合?所以输出应该是List<keyValuePair>

我的字典中的每一项都有一个覆盖的GetHashCode()方法,它故意允许冲突。它的设计仅适用于项目的name

它们的Equals()函数解决了这些冲突。它检查namequantity成员变量

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 );

最新更新