有什麼辦法從一個SortedDictionary中檢索一個等於給定對象的鍵?爲了說明這一點,可以說我創建一個具有相當內存爲重,不可變的密鑰類型的字典:獲取一個等於來自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內置的集合來實現這個目的?
現在有一個想法。 :-)我可能會去阻止任何更直接的解決方案。 – nonoitall 2011-05-16 10:27:23
看起來這是我可以做的最好的,而無需重寫類來公開所需的功能。謝謝! – nonoitall 2011-05-16 21:08:33