ForEach loop for a Generic List repeated endlessly
在
好像是在一个不定式的循环里
1 2 3 4 5 6 | IndexSeries = (List<string>)bFormatter.Deserialize(fsSeriesIndexGet); IndexSeries.ForEach(name => AddSerie(name)); //IndexSeries.ForEach(delegate(String name) //{ // AddSerie(name); //}); |
你用的是含糊不清的词。首先,你提到一个无限循环,然后提到
这甚至可以归结为Joey提到的一些事情:如果在
显示您的
如果我定义:
1 2 3 4 5 6 7 8 | //class level declaration (in a console app) static List<string> strings; static void Loop(string s) { Console.WriteLine(s); strings.Add(s +"!"); } |
然后
1 2 3 4 5 | static void Main(string[] args) { strings = new List<string> {"sample" }; strings.ForEach(s => Console.WriteLine(s)); } |
号
正常执行,输出单个字符串,而
1 2 3 4 5 | static void Main(string[] args) { strings = new List<string> {"sample" }; strings.ForEach(s => Loop(s)); } |
无限循环,添加"!"正在进行中,并且
1 2 3 4 5 6 7 8 | static void Main(string[] args) { strings = new List<string> {"sample" }; foreach (string s in strings) { Loop(s); } } |
。
引发InvalidOperationException(集合已修改;枚举操作可能无法执行),我认为这是正确的行为。我不知道为什么