我有一个外部循环迭代在字典中匹配的子字符串数组。在内部循环中,我想迭代字典并删除其中包含子字符串的条目。如何在不收到“集合被修改的异常”的情况下执行此操作?如何从字典中动态删除键值对,如果键包含一些子字符串?
foreach (string outerKey in new string[] { "PAYERADDR_PAYERNAME", "RECADDR_RECNAME", "PAYERADDR_ADDR", "RECADDR_ADDR" })
{
foreach (var item in _generalWorksheetData.Where(kvp => kvp.Value.Contains(outerKey)).ToList())
{
_generalWorksheetData.Remove(item.Key);
}
}
显示您的代码。 – dario
你正在写的是你想删除的项目有一个键包含一些字符串,但在你的代码中,你检查值'kvp.Value.Contains(outerKey)';-)与你的代码,你几乎在那里。它不起作用,因为你选择字典的项目'kvp'('KeyValuPair'),如果它们是循环的一部分,你不能改变它。如果你把钥匙当作'.Select(kvp => kvp.Key).ToList()'它会起作用; - ] – t3chb0t