c# – 如何迭代和更新列表
发布时间:2020-12-16 01:42:55 所属栏目:百科 来源:网络整理
导读:我有这个问题很多时间,如果我迭代一个列表,并在进程中修改它导致异常. Liststring list = new Liststring() { "one","two","three" }; foreach (string item in list) { if (item == "two") { list.Remove(item); } } 我想出了自己的解决方案,但有兴趣听听你
我有这个问题很多时间,如果我迭代一个列表,并在进程中修改它导致异常.
List<string> list = new List<string>() { "one","two","three" }; foreach (string item in list) { if (item == "two") { list.Remove(item); } } 我想出了自己的解决方案,但有兴趣听听你的解决方案. 解决方法
那么你可以在这种情况下使用linq:
list = list.Where(s => s != "two").ToList(); 要做的很长的路要是建立第二个要删除的项目列表,然后遍历该列表从第一个列表中删除项目.这是一些示例代码: 请注意,我强烈建议使用简单的Linq解决方案,而不是这样做,但如果由于某种原因Linq不适合你,这应该工作: List<string> toRemove = new List<string>(); foreach (string item in list) { if (item == "two") { toRemove.Add(item); } } foreach(string item in toRemove) { list.Remove(item); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |