使用嵌套循环遍历列表时删除列表索引

所以我正在尝试执行这段代码,但是由于它尝试在已删除的索引处执行第一个循环,因此我认为它超出了范围。有谁知道我可以在不越界的情况下执行此代码的方法吗?


  for (int i = myList1.Count - 1; i >= 0; i--)

    {

        for (int j = 0; j < myList2.Count - 1; j++)

        {

            if (myList2[j] != myList1[i])

            {

                myList1.RemoveAt(i);

            }

        }

    }


江户川乱折腾
浏览 185回答 1
1回答

海绵宝宝撒

强制性 Linq 答案:myList1&nbsp;=&nbsp;myList1.Where(i&nbsp;=>&nbsp;!myList2.Contains(i)).ToList();基本上,您不是自己遍历它们,而是使用 Linq 为您完成。您将 myList1 设置为与 [myList2 不包含项目 X] 的 where 子句匹配的项目。
打开App,查看更多内容
随时随地看视频慕课网APP