加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读