如何解决HashTable添加数据时插入重复键

fagen6688 2011-09-02 10:51:28
我想用HashTable循环向数据库添加数据,当循环到第二次的时候就报错,那个HashTable的键已经存在了,不能再重复添加数据,请问如何保证循环添加数据的时候键是不同的
...全文
1712 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
terry813 2011-09-07
  • 打赏
  • 举报
回复
数据中有重复的数据就不要用HASH表保存数据了,换成其他的,比如List<>
yangc20013 2011-09-06
  • 打赏
  • 举报
回复
判断再加
Frog1228 2011-09-06
  • 打赏
  • 举报
回复
HashTable本来就不支持多对一的,你真要用,那么就键值互换。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jeryler 的回复:]

if(!hashtable .ContainsKey(key))
hashtable .Add(key,value);
先判断再添加
[/Quote]
+1
施黛 2011-09-02
  • 打赏
  • 举报
回复
if(!hashtable .ContainsKey(key))
hashtable .Add(key,value);
先判断再添加
pcqpzq 2011-09-02
  • 打赏
  • 举报
回复
HashTable 如果键重复就没有意义,也不可能实现
liufeihardwork 2011-09-02
  • 打赏
  • 举报
回复
为什么要把已经存在的数据再写一次呢,如果存在的话就取出来不就好了吗,你插入数据库的话,发现Hashtable 中存在的话就根据Key 取出 value ,再插入不就解决了吗。
abc3081577 2011-09-02
  • 打赏
  • 举报
回复 1
可以这样,不过碰到相同的键时会覆盖以前的值
hashTable[key]=value;
vrhero 2011-09-02
  • 打赏
  • 举报
回复
自从有了Dictionary<K,V> HashTable就毫无用处了,所以我说“除非你还在用.NET 1.x”...至于什么“访问效率”,两个不同用途的东西根本谈什么比较效率...
sdl2005lyx 2011-09-02
  • 打赏
  • 举报
回复
楼上说得有失偏颇啊,HashTable还是很有用的,访问效率比List<T>高多了。
“当循环到第二次的时候就报错,那个HashTable的键已经存在”,楼主,这说明你并没有用数据库表的主键做HashTable的key,1楼和2楼都说得很清楚,key本来就是HashTable,就不应该重复!
vrhero 2011-09-02
  • 打赏
  • 举报
回复
1.允许重复改用List<T>...

2.HashTable已过时,不要用了...除非你还在用.NET 1.x...
sjfbtnmcn 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jeryler 的回复:]
if(!hashtable .ContainsKey(key))
hashtable .Add(key,value);
先判断再添加
[/Quote]
是啊,没错
你好快啊

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧