dictionary怎么添加数据就会当key重复时候value覆盖

SerapSignore 2009-12-02 02:38:41
就是string str ="1=1|3=2|1=3|"
现在用个dictionary来装着。
foreach(string str2 in str.Split('|')){
String[] array = str2.Split('=');
dic.Add(array[0],array[1]);//这里会报错 。dic的key具有 唯一性

}
我就是想得到dic的值会是1=3 ,3=2
就是第一次加进去的1=1被更新了。
请问如何实现。
...全文
4125 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujiazhi 2009-12-02
  • 打赏
  • 举报
回复
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary["name"] = "zhujiazhi";//这样写,如果当前dictionary里面有这个key,会把当前的这个key上的value给覆盖成现在赋值的值,如果没有就添加的,如下
dictionary["name"] = "zhujiazhi";
dictionary["name"] = "Peter";//这样不会报错,dictionary["name"]的值为最后赋值的值
SerapSignore 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zzlfe 的回复:]
不能直接这么干,
变通一下  判断是否有值,有值修改值
[/Quote]
麻烦给我写几句关键的代码哈~我不会
ctwei86 2009-12-02
  • 打赏
  • 举报
回复
foreach(string str2 in str.Split('|')){
String[] array = str2.Split('=');
if(dic.ContainsKey(array[0]))
dic[array[0])=array[1];
else
dic.Add(array[0],array[1]);

//dic.Add(array[0],array[1]);//这里会报错 。dic的key具有 唯一性

}
SerapSignore 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 errorcode1987 的回复:]
dic.ContainsKey(keyvalue)判断一下如果存在先移除后再添加
         
[/Quote]
怎么移除啊。麻烦了哈 。这个思路是对的。呵呵。但是我试了代码还是没移除掉
zzlfe 2009-12-02
  • 打赏
  • 举报
回复
不能直接这么干,
变通一下 判断是否有值,有值修改值
SerapSignore 2009-12-02
  • 打赏
  • 举报
回复
不懂你们的讲解..
麻烦写明白点哈....2楼貌似理解错了我的意思.
就是dictionary在加数据的时候当这个key有得value会覆盖上去
str 我是随便写个例子。我操作的数据会比这个复杂很多哦。
ErrorCode1987 2009-12-02
  • 打赏
  • 举报
回复
dic.ContainsKey(keyvalue)判断一下如果存在先移除后再添加
flyerwing 2009-12-02
  • 打赏
  • 举报
回复
dic[key]!=null;dic[key]=newvalue;
zhujiazhi 2009-12-02
  • 打赏
  • 举报
回复
dic[array[0]] = array[1];

111,101

社区成员

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

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

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