title: How can I efficiently remove elements by index from a very large list?
body: <p>I have a very large list of integers (about 2 billion elements) and a list with indices (couple thousand elements) at which I need to remove elements from the first list. My current approach is to loop over all indices in the second list, passing each to the <code>RemoveAt()</code> method of the first list:</p>
  <pre><code>indices.Sort();
  indices.Reverse();
  for (i = 0; i &lt; indices.Count; i++)
  {
      largeList.RemoveAt(indices[i]);
  }
  </code></pre>
  <p>However, it takes about 2 minutes to finish. I really need to perform this operation much faster. Is there any way of optimizing this?</p>
  <p>I have a Intel i9X CPU with 10 cores, so maybe some way of parallel processing?</p>