foreac里面的取陣列的時候原來不能變
uj5u.com熱心網友回復:
不能修改,洗掉,添加uj5u.com熱心網友回復:
要避免這個問題就得用for回圈uj5u.com熱心網友回復:
因為在foreach內修改集合會產生混淆,所以在foreach中禁制對集合進行修改,否則會報無效操作的錯誤。上面說了用for是可以的,不過如果用for,那操作的程序中,一定要注意索引、元素的變化。
uj5u.com熱心網友回復:
克隆后 處理吧uj5u.com熱心網友回復:
是的,foreach內部使用迭代器,會維護一個標識,來判斷源集合是否修改,一旦修改了就會報錯”集合已修改“的錯誤。遍歷可變集合就用for回圈。uj5u.com熱心網友回復:
#5正解,不贅述uj5u.com熱心網友回復:
如果想改變可以把你遍歷的集合加上.ToList();uj5u.com熱心網友回復:
foreach 是不安全的, 考慮到 安全可以用 for .CopyTo ,Clone , ToList 都可以。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/119095.html
下一篇:ef core 一對多配置問題
