我们不能在lambda中使用break语句(C#3.0)

New*_*bie 4 c#-3.0

考虑一下

List<int> intList = new List<int> { 1, 2, 3, 4, 5, 6 };

            int j = 0;
            intList.ForEach(i =>
                {
                    if (i.Equals(1))
                    {
                        j = i;
                        break;
                    }
                }
            );
Run Code Online (Sandbox Code Playgroud)

投掷错误:没有封闭的循环,可以打破或继续

但下面的工作

foreach(int i in intList)
{
j = i; break;
}
Run Code Online (Sandbox Code Playgroud)

为什么这样.我犯了什么错

谢谢

Ran*_*pho 6

请记住,ForEach方法的目的是调用在列表中的每个项目上传递给它的lambda方法.如果您需要在循环处理过程中突破循环,则必须使用经典循环.