如何从列表中删除多个条目而不超出范围?

xbo*_*nez 6 c#

我有一个包含许多值(例如200)的整数列表.

List<int> ExampleList;
Run Code Online (Sandbox Code Playgroud)

另一个关于整数的列表包含需要从ExampleList中删除的索引.但是,此列表未排序.

List<int> RemoveFromExampleList;
Run Code Online (Sandbox Code Playgroud)

如果它已经排序,我会运行一个反向循环并删除所有的值,如下所示:

for (int i = (RemoveFromExampleList.Count-1); i >=0; i--)
{
    ExampleList.RemoveAt(RemoveFromExampleList[i]);
}
Run Code Online (Sandbox Code Playgroud)

我是否必须对RemoveFromExampleList进行排序,还是有另一种方法从ExampleList中删除不必要的值?

如果我必须排序,最简单的排序方式是什么?是否有任何内置的C#库/方法进行排序?

And*_*ber 8

如果RemoveFromExampleList是索引列表,则必须对其进行排序并按降序工作以基于这些索引进行删除.以任何其他方式执行此操作将导致您删除您不想删除的值.

  • 究竟.排序就像`RemoveFromExampleList.Sort();`一样简单.如果之后添加一个`.Reverse()`,你可以`foreach`通过列表. (2认同)