Как уменьшить количество без уменьшения емкости в C # List - PullRequest
0 голосов
/ 22 мая 2019

У меня есть список, который должен быть полностью удален один раз в каждом кадре интерактивного приложения.

Я зарезервировал емкость до 10.000 предметов в начале, чтобы избежать дополнительных затрат на добавление предметов по одному.

Тогда я хочу удалить их всех. Очевидно, использование Clear () установит Capacity в 0. Так ли это? Как мне сохранить емкость тогда?

1 Ответ

2 голосов
/ 22 мая 2019

Clear() не сбрасывает емкость:

var list = new List<int>(500);
list.Add(42);
list.Clear();
Console.WriteLine(list.Count); // 0
Console.WriteLine(list.Capacity); // 500

(по крайней мере, не на обычной .NET Framework / .NET Core).Итак: просто позвоните Clear().Если вы используете что-то более экзотическое, вам нужно быть конкретным в своей целевой структуре.

...