我有一個外部循環迭代在字典中匹配的子字符串數組。在內部循環中,我想迭代字典並刪除其中包含子字符串的條目。如何在不收到「集合被修改的異常」的情況下執行此操作?如何從字典中動態刪除鍵值對,如果鍵包含一些子字符串?
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