Я хочу очистить список. Как это сделать?
.net empty list, эта страница появляется раньше MSDN!
Я хочу очистить список. Как это сделать?
.net empty list, эта страница появляется раньше MSDN!
Ответы:
Это действительно просто:
myList.Clear();
List<>, ArrayListили орудие IList. ;)
List<T>.ClearПравильно очищаются все ссылки, что позволяет GC очищать аллоки при необходимости. new List<T>НЕ делает этого и не подходит практически для всех сценариев
Если под "списком" вы подразумеваете a List<T>, то вам нужен метод Clear :
List<string> list = ...;
...
list.Clear();
Вы должны выработать привычку искать эти вещи в документации MSDN.
Вот как быстро найти документацию по разным частям этого типа:
List<T>класс ( это то, с чего вы должны были начать )Все эти запросы Google содержат набор ссылок, но обычно вам нужна первая из них, которую Google дает вам в каждом случае.
Чтобы дать альтернативный ответ (Кому нужны 5 одинаковых ответов?):
list.Add(5);
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now
Имейте в виду, что все остальные ссылки на старый список не были удалены (в зависимости от ситуации это может быть то, что вам нужно). Кроме того, с точки зрения производительности он обычно немного медленнее.
listесть новая ссылка. Так что не используйте это, если вы используете блокировку в этом списке.
Вариант №1: используйте функцию Clear (), чтобы очистить List<T>и сохранить емкость.
Count установлен в 0, и ссылки на другие объекты из элементов коллекции также освобождаются.
Емкость осталась без изменений.
Вариант №2 - Используйте функции Clear () и TrimExcess () для установки List<T>в исходное состояние.
Count установлен в 0, и ссылки на другие объекты из элементов коллекции также освобождаются.
Обрезка пустого значения
List<T>устанавливает емкость списка до емкости по умолчанию.
Определения
Count = количество элементов, которые фактически находятся вList<T>
Емкость = общее количество элементов, которые внутренняя структура данных может содержать без изменения размера.
Только очистить ()
List<string> dinosaurs = new List<string>();
dinosaurs.Add("Compsognathus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Deinonychus");
Console.WriteLine("Count: {0}", dinosaurs.Count);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
dinosaurs.Clear();
Console.WriteLine("\nClear()");
Console.WriteLine("\nCount: {0}", dinosaurs.Count);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
Clear () и TrimExcess ()
List<string> dinosaurs = new List<string>();
dinosaurs.Add("Triceratops");
dinosaurs.Add("Stegosaurus");
Console.WriteLine("Count: {0}", dinosaurs.Count);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
dinosaurs.Clear();
dinosaurs.TrimExcess();
Console.WriteLine("\nClear() and TrimExcess()");
Console.WriteLine("\nCount: {0}", dinosaurs.Count);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
Вы можете сделать это
var list = new List<string>();
list.Clear();