您可以通过两种方式向Hashtable添加数据,如下所示:
第一种方式
Hashtable ohashtable=new Hashtable();
ohashtable[Key1] = Value1;
ohashtable[Key2] = Value2;
ohashtable[Key3] = Value3;
或者像这样:
第二种方式
Hashtable ohashtable=new Hashtable();
ohashtable.Add(Key1, Value1);
ohashtable.Add(Key2, Value2);
ohashtable.Add(Key3, Value3);
有什么不同?
我认为这段代码解释了这一点。
First Way可以为同一个键添加和更新值,因为我们使用了方括号。
第二种方法是只能将值添加到一个键而不能更新同一个键的值吗?
我的想法是正确的?还是其他任何一点?
答案 0 :(得分:2)
是的,你的想法是正确的。使用索引器属性(方括号),您可以添加和更新项目。使用Add
项目只能添加项目。如果具有给定键的项已经存在于集合中,它将抛出ArgumentException
。
Hashtable.Item
财产获取或设置与指定键关联的值。
Hashtable.Add
方法将具有指定键和值的元素添加到Hashtable中。
对于MSDN上的问题,甚至有一个确切的答案:
但是,如果指定的密钥已存在于
Hashtable
,设置中,则Item
属性会覆盖旧值。相反,Add
方法不会修改现有元素。
答案 1 :(得分:0)
使用方括号直接指定值。
Hashtable ohashtable=new Hashtable();
ohashtable[Key1] = Value1;
ohashtable[Key2] = Value2;
ohashtable[Key3] = Value3;
使用密钥内容在Hashtable上调用ContainsKey。如果找到密钥,则此方法返回true,无论值是什么。
Hashtable ohashtable=new Hashtable();
ohashtable.Add(Key1, Value1);
ohashtable.Add(Key2, Value2);
ohashtable.Add(Key3, Value3);
答案 2 :(得分:0)
第一种方式和第二种方式不同。
您可以使用Item属性通过设置Hashtable中不存在的键的值来添加新元素。
例如,myCollection["myNonexistentKey"] = myValue
但是,如果指定的键已存在于Hashtable中,则设置Item属性将覆盖旧值。
相反,Add方法不会修改现有元素。