2015-06-16 260 views
0

人們會想象這將是一個非常簡單的任務,但我得到一個System.InvalidOperationException當我運行這段代碼:通過按鍵獲取密鑰

Dictionary<string, bool> TableExists = new Dictionary<string, bool>(); 
//... fill the dictionary 
foreach(string value in TableExists.Keys){/*Do something*/} 

它應該迭代字典TableExists,但我在foreach行得到無效操作異常。我是否正確使用任何字典操作?如果是這樣的話,通過C#字典的關鍵字工作的正確方法是什麼?

編輯:

是的,我試圖改變相應的字典鍵一些值,得到一個Collection was modified錯誤。

+6

你顯示的那段代碼沒有錯。還有其他一些事情正在發生。 – Chris

+4

什麼是**做些什麼**可能對您的問題有實質意義。 – hatchet

+0

什麼是堆棧跟蹤? –

回答

9

某些操作不foreach(重點煤礦)內允許:

的foreach語句用於通過收集迭代,以獲得您想要的信息,但不能使用從源集合添加或刪除項目以避免不可預知的副作用。

如果你想添加或刪除內foreach字典元素,你可能會得到

System.InvalidOperationException:集合已修改;枚舉操作可能不會執行。

+6

哇這些投票是我見過的最快的。 – Jashaszun

+0

誰將添加更多? :D –

+2

當答案是評論時,一分鐘內如何得到8個upvotes? –