2011-03-08 37 views
4

我使用相同的ID獲取多個記錄,並且我想將它們存儲在C#中的Hashtable中。我使用ID作爲Hashtable中的鍵,值是對象本身。它會引發異常,因爲再次添加了相同的密鑰。有沒有辦法解決這個問題?Hastable在C#中:多次使用相同的密鑰

這是我的代碼:

Hashtable localItemsIndex = new Hashtable();    
foreach (TzThing thing in localThingz) 
     localItemsIndex.Add(thing.Id, thing); 

在此先感謝 珍妮

+2

您*有*使用舊的非通用集合,或者您對我們提出的基於.NET 2和更高版本的解決方案感到高興嗎?那麼LINQ呢? – 2011-03-08 11:29:47

回答

6

也許你應該使用Dictionary<Id,List<TzThing>>存儲多個值一個關鍵

public void Add(YourIdType key,TzThing thing) 
{ 
    if(dictionary.ContainsKey(key)) 
    { 
     dictionary[key].Add(thing); 
    } 
    else 
    { 
     dictionary.Add(key,new List<TzThing> {thing}); 
    } 
} 
+0

可以請你簡單說明如何在字典中存儲相同的密鑰 – user642378 2011-03-15 05:51:22

+0

請參閱我在編輯中的回答 – Stecya 2011-03-15 06:58:13

0

如果你有很多事情去使用相同的密鑰,把你的東西在列表中。

1

哈希表鍵必須是唯一的:你不能兩次添加相同的鑰匙進去。您可以使用List或HashSet,其中T是類的鍵值對(或使用.net KeyValuePair類)或Dictionary類,其中V是列表或集,但您仍然需要手動管理重複鍵插入。

0

你不能使用HashTable這個。它只接受唯一的密鑰。否則,您需要使用List<T>KeyValuePair<key,value>類。

相關問題