c# list removerange performance