在Foreach循环中修改列表//..填充列表..foreach(variteminlist){DoFunction(list);}publicvoidDoFunction(Listlist){if(someCondition==true){//..modifylistinhere..}}现在,我知道不可能编辑你正在做的集合,但是如果你有编辑列表(没有trycatch语句),如何优雅地跳出循环?有没有办法判断列表是否已被编辑?您可以编辑列表并快速中断;在通知之前?代替使用foreach构造,for循环将允许您改变列表。for(varx=0;x是的,如果那是你真正想要的,你可以中断。在for循环尝试从列表中获取下一个项目之前不会抛出异常。但我发现最简单的方法是创建和迭代在列表的副本上,所以你不必担心foreach(variteminlist.ToList())与更复杂代码的可维护性成本相比,额外的未触及列表的额外性能开销通常可以忽略不计......在不知道正在进行何种编辑的情况下很难提供有用的建议。但是,我发现的模式具有最普遍的价值,即构建一个新列表。例如,如果你需要查看每一项并决定是删除它,保持原样,还是在它后面插入该项,你可以使用这样的模式:每个人都有用,需要了解更多C#学习教程。希望大家多多关注---IEnumerablebutcherTheList(IEnumerableinput){foreach(stringcurrentininput){if(case1(current)){yieldreturncurrent;}elseif(case2(current)){yieldreturncurrent;yieldreturnsomeFunc(current);}//默认行为是不产生任何东西,有效地删除项目}}ListnewList=butcherTheList(input).ToList();收藏不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
