C# 从字典中关闭表单

C# 从字典中关闭表单,c#,winforms,dictionary,client-server,C#,Winforms,Dictionary,Client Server,所以基本上我有一个字典,它存储为特定客户机(标识符)打开的所有表单。当这个客户机断开连接时,我需要关闭为客户机打开的所有表单 但是,当我对每个表单调用Close()时,字典都会被修改,并且会出现一个异常: “InvalidOperationException:集合已修改;枚举操作可能无法执行。” 我的代码: foreach (var KeyValuePair in Clients[Identifier].Windows) { KeyValuePair.Value.Close(); } 是

所以基本上我有一个字典,它存储为特定客户机(标识符)打开的所有表单。当这个客户机断开连接时,我需要关闭为客户机打开的所有表单

但是,当我对每个表单调用Close()时,字典都会被修改,并且会出现一个异常: “InvalidOperationException:集合已修改;枚举操作可能无法执行。”

我的代码:

foreach (var KeyValuePair in Clients[Identifier].Windows)
{
   KeyValuePair.Value.Close();
}
是否有其他方法可以做到这一点?

尝试使用foreach(客户机[Identifier].Windows.ToList()中的var KeyValuePair)


PS:不要忘记使用System.Linq包含

您是否尝试过foreach(客户机[Identifier].Windows.ToList()中的var KeyValuePair)(?这是一种Linq方法。您是否包括使用System.Linq的
?你应该发布你的答案,这样我就可以接受了。