2013-07-15 33 views
-2

所以基本上我有一個存儲爲特定客戶端(標識符)打開的所有窗體的字典。當此客戶端斷開時,我需要關閉爲客戶端打開的所有窗體。從字典中關閉表格

但是,當我在每個表單上調用Close()時,字典會被修改,並且會得到一個異常: 「InvalidOperationException:集合已被修改;枚舉操作可能無法執行。

我的代碼:

foreach (var KeyValuePair in Clients[Identifier].Windows) 
{ 
    KeyValuePair.Value.Close(); 
} 

是否有任何替代辦法做到這一點?

+0

你有沒有(在客戶端[標識符] .Windows.ToList()VAR KeyValuePair)''試過的foreach? – I4V

+0

這是一個Linq方法。你包括'使用System.Linq;'? – I4V

+0

謝謝。它有效。 – user2529551

回答

0

嘗試foreach (var KeyValuePair in Clients[Identifier].Windows.ToList())

PS:不要忘了包括using System.Linq;