foreach
循環內的列表在C#/.NET 4.0中,可以在foreach
循環期間修改可枚舉物件而不會遇到異常。 Paul Jackson的部落格文章對此進行了詳細討論。
然而,一個常見的問題出現了:修改foreach
循環內的列表,尤其是在嵌套foreach
場景中,最佳方法是什麼?
傳統上,IList
通常用作快取或緩衝區,以累積更改,直到外部foreach
循環結束。但是還有更好的替代方案嗎?
必須注意,在foreach
循環中迭代的集合在設計上是不可變的。如MSDN文件中所述,foreach
旨在存取數據,而不是修改來源集合以防止不可預測的副作用。
如果需要新增或刪除來源集合或刪除項目,建議改用for
循環。這確保了對集合進行可預測和受控的修改。
Poko連結的部落格文章表明,此限制可能不適用於C#/.NET 4.0中引入的並發集合。
以上是如何安全地修改C#中嵌套的' foreach”循環中的列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!