获取密钥-字典中的值并删除此密钥

康斯坦丁·莫霍夫(Konstantin Mokhov)

我有一些代码

muVar = 5782347242-8923423423-3423423432;

比我将它添加到字典。ex {1:57,2:82,3:34,4:72,5:42,6:-,....}我试图得到这个变量的路径

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);
}

但我有一个例外:“集合已修改;枚举操作可能无法执行。”

维纳·普拉塔普·辛格(Vinay Pratap Singh)

您的foreach循环正在使用该集合,因此您无法在两次循环之间修改它

尝试使用 ToList()

    foreach (KeyValuePair<int, string> kvp in myDict.ToList())
{
    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.ToList())
{
    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);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章