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

海绵宝宝撒
TA贡献1809条经验 获得超8个赞
强制性 Linq 答案:
myList1 = myList1.Where(i => !myList2.Contains(i)).ToList();
基本上,您不是自己遍历它们,而是使用 Linq 为您完成。您将 myList1 设置为与 [myList2 不包含项目 X] 的 where 子句匹配的项目。
- 1 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消