我正在使用自定義類作爲字典(TKey,TValue)的關鍵字。該類重寫GetHashCode和Equals等。有沒有辦法使用等效鍵檢索Dictionary鍵?
我希望能夠做的是添加一個鍵/值對;之後,生成一個等於第一個密鑰的新密鑰(相同的哈希碼,Equals返回true),並且使用此等效密鑰不僅可以檢索該值,而且還可以檢索對第一個已添加的原始密鑰的引用到詞典。
例子:
var keyA = new KeyClass("abc123");
var keyB = new KeyClass("abc123"); // same as far as dictionary is concerned
var dict = new Dictionary<KeyClass, Object>();
dict.Add(keyA, value);
現在我怎樣才能使用KEYB從字典到科亞參考?
這似乎應該很容易做到沒有枚舉Keys集合,因爲Dictionary已經將這些鍵哈希化了,但是我找不到任何構建到Dictionary類中的東西。我錯過了什麼嗎?現在,我將不得不使用雙向字典並進行反向查找,或者(在本例中爲我的首選項)「增強」我用於值的類,以便它們存儲對原始鍵的引用。
當「類重寫的GetHashCode和平等相待,等」 - 怎麼可能出問題? ;) –
我不確定你想要達到什麼目的?爲什麼列舉鍵是不夠的? –
@MitchWheat在類中實現'IEquatable'時,需要重寫這些方法。 http://msdn.microsoft.com/en-us/library/ms131190(v=vs.110).aspx – Smeegs