当前位置: 代码迷 >> 综合 >> C#循环遍历Dictionary,并且可以改变值
  详细解决方案

C#循环遍历Dictionary,并且可以改变值

热度:90   发布时间:2024-02-06 07:47:43.0

通常的C#循环遍历是用foreach循环遍历。好处就是简单,但是缺点就是无法在循环中改变Dictionary的值。

Dictionary <string,int>

一下遍历这个Dictionary。

代码:

            for (int i = 0; i < HostMessage.Count; i++){var item = HostMessage.ElementAt(i);Console.WriteLine("key is " + item.Key);Console.WriteLine("value is " + item.Value);if (item.Key == "MS01"){HostMessage["MT01"] = 102;}}

默认HostMessage中有值。

这样就可以了。

我这样写有个BUG,就是在终端输出依旧是没有改变值的,其实是改变了,是不过没有及时输出。要是用以下代码就好了。

            for (int i = 0; i < HostMessage.Count; i++){var item = HostMessage.ElementAt(i);Console.WriteLine("key is " + item.Key);Console.WriteLine("value is " + item.Value);if (item.Key == "MS01"){HostMessage["MT01"] = 102;}}Console.WriteLine("*****************************8888");foreach (string key in HostMessage.Keys){Console.WriteLine("Key = {0}, Value = {1}", key, HostMessage[key]);}