Как очистить список в C#?


Я хочу очистить список. Как это сделать?

7 73

7 ответов:

Это очень просто:

myList.Clear();

Если под "списком" вы подразумеваете List<T>, потом ясный метода является то, что вы хотите:

List<string> list = ...;
...
list.Clear();

вы должны привыкнуть искать документацию MSDN по этим вещам.

вот как быстро искать документацию по различным битам этого типа:

все эти запросы Google перечисляет пучок ссылок, но обычно вы хотите первый, который google дает вам в каждом случае.

дать альтернативный ответ (кому нужны 5 одинаковых ответов?):

list.Add(5); 
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now

имейте в виду, что все остальные ссылки на старый список не очищается (в зависимости от ситуации, это может быть то, что вы хотите). Кроме того, с точки зрения производительности, это, как правило, немного медленнее.

Вариант №1: Использовать очистить() очистить List<T> и сохранить его емкость.

  • Count имеет значение 0, и ссылки на другие объекты из элементов коллекция также выпущена.

  • емкость остается неизменной.

Вариант № 2 - Использовать очистить() и TrimExcess() функции установить List<T> в первоначальное государство.

  • Count имеет значение 0, и ссылки на другие объекты из элементов коллекция также выпущена.

  • обрезка пустой List<T> устанавливает емкость списка на емкость по умолчанию.

определения

графа = количество элементов, которые на самом деле находятся в 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();

вы можете использовать метод clear

List<string> test = new List<string>();
test.Clear();

вам нужна функция Clear () в списке, например.

List<object> myList = new List<object>();

myList.Add(new object()); // Add something to the list

myList.Clear() // Our list is now empty