c# list remove vs removeat performance