问题描述
[code=csharp]if(IsSucceedList.Count>0){//遍历集合,如果为true继续遍历,如果为false将数据更新为初始状态并停止遍历。foreach(boolsuccessinIsSucceedList){if(success){IsSucced=true;}else{IsSucced=false;if(UpdateQntyDt!=null&&UpdateQntyDt.Rows.Count>0){for(inti=0;i<UpdateQntyDt.Rows.Count;i++){。。。。。。}}此处想跳出整个循环用break可行吗?}}}}我想在else内执行更新操作并且跳出整个循环用break可行吗?如果别的方式如何修改代码
解决方案
解决方案二:
就是break啊,你这个不就一层循环吗?你又不是多层循环如果多层要跳出,可以通过标志位,然后一层层跳出,也可以直接通过goto跳出
解决方案三:
我不是想跳出foreach而是想跳出if(IsSucceedList.Count>0)这个判断条件不再执行这段代码
解决方案四:
引用2楼u014008675的回复:
我不是想跳出foreach而是想跳出if(IsSucceedList.Count>0)这个判断条件不再执行这段代码
使用goto用法参考msdn
解决方案五:
引用2楼u014008675的回复:
我不是想跳出foreach而是想跳出if(IsSucceedList.Count>0)这个判断条件不再执行这段代码
如果你不想执行if代码段,而又不想把IsSucceedList清空,可以设置一个bool类型的变量比如if(isSuccess&&IsSucceedList.Count>0){}这样的话,你把isSuccess赋值false,if代码段就不执行了
解决方案六:
引用2楼u014008675的回复:
我不是想跳出foreach而是想跳出if(IsSucceedList.Count>0)这个判断条件不再执行这段代码
在外部设置个标志位if(IsSucceedList.Count>0){boolneedBroken=false;//遍历集合,如果为true继续遍历,如果为false将数据更新为初始状态并停止遍历。foreach(boolsuccessinIsSucceedList){if(success){IsSucced=true;}else{IsSucced=false;if(UpdateQntyDt!=null&&UpdateQntyDt.Rows.Count>0){for(inti=0;i<UpdateQntyDt.Rows.Count;i++){。。。。。。}}//此处想跳出整个循环用break可行吗?needBroken=true;break;}}if(!needBroken){//执行不需要结束的代码}}}
goto虽然我上面也写了,但慎用