有没有办法从 SortedDictionary 中检索与给定对象相等的键?为了说明,假设我创建了一个字典,它具有相当大的内存,不可变的键类型:
var dictionary = SortedDictionary<MyHugeType, int>();
var myEnormousKey = new MyHugeType();
dictionary[myEnormousKey] = 123;
然后稍后,我会做这样的事情:
// This is a new instance, but it's identical to the previous key
var myIdenticalKey = new MyHugeType();
if(dictionary.ContainsKey(myIdenticalKey)) {
myIdenticalKey = dictionary.GetKeyEqualTo(myIdenticalKey);
}
// Use myIdenticalKey reference...
显然,SortedDictionary 没有“GetKeyEqualTo”方法。但是有什么方法可以达到类似的效果吗?这基本上会产生实习重关键对象的效果,以便可以丢弃相同的实例。我知道我可以使用 SortedList 类通过检索键的索引并随后检索其匹配的对象实例来做到这一点,但 SortedDictionary 的一致插入性能对于我的使用会更好。
如果没有遍历所有字典的键来搜索匹配项,或者编写我自己的 BST 类,有没有办法通过 .NET 的内置集合来实现这一目标?