【发布时间】:2014-03-20 19:47:55
【问题描述】:
我有一些代码
muVar = 5782347242-8923423423-3423423432;
比我将它添加到 dict. ex {1: 57, 2 : 82, 3 : 34, 4 : 72, 5 :42, 6 : -, ....} 我尝试获取此 var 的路径
foreach (KeyValuePair<int, string> kvp in myDict)
{
if (kvp.Value == "-") { myDict.Remove(kvp.Key); break; }
foreach (KeyValuePair<string, string> kvp2 in dict2)
{
if (kvp.Value == kvp2.Value) var1 += kvp2.Key;
}
myDict.Remove(kvp.Key);
}
foreach (KeyValuePair<int, string> kvp in myDict)
{
if (kvp.Value == "-") { mytDict.Remove(kvp.Key); break; }
foreach (KeyValuePair<string, string> kvp2 in dict2)
{
if (kvp.Value == kvp2.Value) var2 += kvp2.Key;
}
myDict.Remove(kvp.Key);
}
但我有一个异常“集合已修改;枚举操作可能无法执行。”;
【问题讨论】:
-
在格式化您的帖子时请多加小心 - 我确定您的真实代码中没有缩进约 12 个字符的
foreach正文,因此您的帖子也没有理由这样做。如果您以更传统的方式而不是“同一行中的多个语句”来格式化块,这也会有所帮助...... -
也不清楚您期望的结果是什么。是的,您在删除该项目后遇到了一个异常 - 这在许多其他帖子中都提到过 - 但目前尚不清楚您要实现的目标。
-
这里的问题可能是 myDict.Remove(kvp.Key);线。在 foreach 语句中,您不应该触摸您的 myDict。这是因为仍在进行中
-
我需要获得 3 个部分的“muVar”。第一个 5782347242,第二个 8923423423,第三个 3423423432。3 个部分用“-”分隔
标签: c# dictionary