您当前的位置: 首页 >  c#

Peter_Gao_

暂无认证

  • 0浏览

    0关注

    621博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C#遍历List并删除某个或者几个元素的方法

Peter_Gao_ 发布时间:2021-11-09 16:31:18 ,浏览量:0

 在foreach中 Remove 删除元素时,每一次删除都会导致集合的大小和元素索引值发生变化,会导致在foreach中删除元素会出现异常。

原因很简单。有些集合,比如List或者字典等,如果你在循环过程中如果判断符合条件后进行:删除或修改子项,那么就会出现这个异常。

注意遍历的时候不要用foreach,而是用for循环从尾到头遍历,否则一旦删除后索引长度改变,会导致死循环或者索引超出长度的异常。

正确示例:

 private void ListTest()
    {
        List replyList = new List() {4, 5};
        List origialList = new List() {1, 4, 5, 6};
        foreach (var reply in replyList)
        {
            for (int j = origialList.Count - 1; j >= 0; j--)
            {
                if (origialList[j] == reply)
                {
                    origialList.Remove(origialList[j]);
                    origialList.Add(reply);
                }
            }
        }

        foreach (var curNum in origialList)
        {
            Debug.Log("============Test: " + curNum);
        }
    }

C#遍历List并删除某个或者几个元素的方法 - fire909090 - 博客园

关注
打赏
1664521772
查看更多评论
立即登录/注册

微信扫码登录

0.0381s