是否有任何.NET類型代表一組鍵值對,其中每個鍵只會與單個值配對(如常規Dictionary
),但每個值只會與一個鍵配對?我一直認爲這是一個「可反轉」的字典,因爲你可以交換鍵值與沒有任何碰撞。編寫這樣的類不應該很難,並且爲給定的值添加諸如「TryGetKey」之類的方法。然而,我想檢查一下這樣的事情是否已經存在,或許是用我沒有想到的另一個名字。.NET「可逆」字典,其中的鍵和值是可交換的
另外,考慮到對this question的優雅回答,我可以創建一個類來表示這個可逆字典,當我可以輕鬆地使用LINQ將任何字典轉換爲其值對應的字典時,這是否值得?
那麼,對於引用類型來說,有額外字典的內存開銷不會太大,不是嗎? – cwap 2010-09-27 18:24:40
@cwap:如果鍵和值都是引用類型,則字典開銷(至少在64位計算機上)每個條目爲24個字節。 – 2010-09-27 18:26:56
遇到一個錯誤,我在嘗試編寫一個既實現了'IDictionary'和'IDictionary '的類時也沒有見過:''InvertibleDictionary '無法實現'System.Collections。 Generic.IDictionary '和'System.Collections.Generic.IDictionary ',因爲它們可以統一某些類型參數替換「。猜猜我會實現一個! –
2010-09-27 18:57:32