错误记录--关于foreach,集合已修改;可能无法执行枚举操作
2013-06-22 01:39
507 查看
集合已修改,可能无法执行枚举操作。今天在使用foreach遍历的时候出现了这样的错误。查了一下,这个是使用foreach的典型的错误问题问题。foreach在遍历取数据的过程中,枚举器只允许读,不允许更改其中的数据,包括修改删除添加。这种情况下如果需要改动数据,应该使用for遍历。
错误代码/// <summary> /// 获得表中不含列名id的所有列名 /// </summary> /// <param name="dtCols"></param> /// <returns></returns> private static string[] GetColsWithoutId(DataTable dtCols) { List<string> list = new List<string>(); list.AddRange(GetCols(dtCols)); //foreach(string colname in list) //{ // if(colname.Equals("id",StringComparison.CurrentCultureIgnoreCase)) // { // list.Remove(colname);//foreach只读,在取的时候数据不能变(包括修改,删除,添加等)--避免出现错误:集合已修改 // } //} for (int i = list.Count - 1; i >= 0; i--)//foreach只读,在取的时候数据不能变(包括修改,删除,添加等)--避免出现错误:集合已修改;可能无法执行枚举操作,采用for,从最后一个开始遍历,避免遗漏 { if (list[i].Equals("id", StringComparison.CurrentCultureIgnoreCase)) { list.RemoveAt(i); } } return list.ToArray(); }
for-修改代码
相关文章推荐
- .net使用foreach时发生错误:集合已修改;可能无法执行枚举操作
- 黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误
- C#中出现“集合已修改;可能无法执行枚举操作”错误 foreach list.Remove()
- 黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误
- C#中foreach List循环操作出现“集合已修改;可能无法执行枚举操作”错误
- 关于VB.NET出现“集合已修改;可能无法执行枚举操作”错误的解决
- C#使用List出现“集合已修改;可能无法执行枚举操作”错误的解决办法
- C#中foreach出现“集合已修改 可能无法执行枚举操作”的解决方法
- for遍历Dictionary字典 解决foreach修改字典报集合已修改:可能无法执行枚举操作
- Dictionary的错误“集合已修改;可能无法执行枚举操作。”
- 集合已修改;可能无法执行枚举操作 foreach
- 集合已修改;可能无法执行枚举操作 for 与foreach
- C# 集合类Dictionary的遍历和修改(防止错误:集合已修改;可能无法执行枚举操作。)
- 怎么回事儿?C#错误:集合已修改;枚举操作可能无法执行。
- [错误]集合已修改;可能无法执行枚举操作
- 集合已修改;枚举操作可能无法执行。使用foreach 循环删除DataRow的时候的问题! 该死的AcceptChanges() Row.elete() Remove(Row)使用不同。
- 集合已修改;可能无法执行枚举操作。
- 集合已修改;可能无法执行枚举操作。
- 集合已修改;可能无法执行枚举操作
- 集合已修改;枚举操作可能无法执行。