1、foreach中可以用容器的方法修改容器,比如List的add,remove,且在foreach结束前要break才不会出现那个什么不能修改枚举值的错误。
2、foreach中不能直接修改容器中的内容,比如容器中装了一个struct,struct里面有个string,若想直接更改这个string就算加上break也不行。代替的方法是先复制该容器,再remove,再add进去。真麻烦- -!;或者给struct添加属性。 所以尽管foreach很方便,但这种局限性有时候很抓狂,用很多控件提供的GetEnumerator去遍历容器也不可修改之,郁闷地只能用for,List还好可用下标遍历,但Dictonary就郁闷了。还好现在没遇到非要修改dictionary的时候,到时候再想办法吧。 以上是最近写C#的的一点心得,记录一下便需要时查看,请多多指教。
2、foreach中不能直接修改容器中的内容,比如容器中装了一个struct,struct里面有个string,若想直接更改这个string就算加上break也不行。代替的方法是先复制该容器,再remove,再add进去。真麻烦- -!;或者给struct添加属性。 所以尽管foreach很方便,但这种局限性有时候很抓狂,用很多控件提供的GetEnumerator去遍历容器也不可修改之,郁闷地只能用for,List还好可用下标遍历,但Dictonary就郁闷了。还好现在没遇到非要修改dictionary的时候,到时候再想办法吧。 以上是最近写C#的的一点心得,记录一下便需要时查看,请多多指教。
要修改元素的直接用for。
但是,修改元素的属性和值是可以的