我获取具有相同ID的多个记录,我想将它们存储在C#中的Hashtable
中。我使用id作为Hashtable
中的键,值是对象本身。它会引发异常,因为会再次添加相同的密钥。有没有办法解决这个问题?
这是我的代码:
Hashtable localItemsIndex = new Hashtable();
foreach (TzThing thing in localThingz)
localItemsIndex.Add(thing.Id, thing);
提前致谢 珍
答案 0 :(得分:7)
也许您应该使用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});
}
}
答案 1 :(得分:1)
哈希表键必须是唯一的:您不能将相同的键两次添加到其中。您可以使用List或HashSet,其中T是您的类的键值对(或使用.net KeyValuePair类)或Dictionary类,其中V是列表或集合,但您仍需要手动管理重复键插入。
答案 2 :(得分:0)
如果您使用相同的密钥有很多事情要做,请将您的东西放在列表中。
答案 3 :(得分:0)
您无法使用HashTable。它只接受唯一键。否则,您需要将List<T>
与KeyValuePair<key,value>
类一起使用。