c# list removeat performance