I have a string like
string Text = "012345678901234567890123456789";
and a List<int> with indexes
List<int> Indexes = new List<int>() { 2, 4, 7, 9, 15, 18, 23, 10, 1, 2, 15, 40 };
with following restrictions
- there are duplicates within the list
- the list is not sorted
- there may be indexes  > Text.length
what's the best way to remove characters from the text which are in the index list?
expected output:
035681234679012456789
Is there a more efficent way than
foreach (int index in Indexes
                        .OrderByDescending(x => x)
                        .Distinct()
                        .Where(x => x < Text.Length))
{
    Text = Text.Remove(index, 1);
}
Update:
Here are the Benchmarks of the current answers (string with 100.000 characters and List<int> with length 10.000:
Gallant: 3.322 ticks
Tim Schmelter: 8.602.576 ticks
Sergei Zinovyev: 9.002 ticks
rbaghbanli: 7.137 ticks
Jirí Tesil Tesarík: 72.580 ticks
 
     
     
     
     
     
    