C#for 和 foreach 使用上的区别 - chunlieater/chunlifeet GitHub Wiki

  • 在对普通集合类型进行操作的过程中,for可以动态修改查找的变量,而foreach不行。因为foreach调用普通集合时,是对其引用进行直接操作,任何修改都会导致无法判断之后的遍该历如何进行。
  • 对于多线程集合类型,foreach是可以对其进行操作的。因为foreach在调用多线程集合时,遍历的是该集合的拷贝,所以在便利过程中对集合进行修改 并不影响遍历结果。