Chcę opróżnić listę. Jak to zrobić?
.net empty list, ta strona pojawia się przed MSDN!
Chcę opróżnić listę. Jak to zrobić?
.net empty list, ta strona pojawia się przed MSDN!
Odpowiedzi:
To naprawdę proste:
myList.Clear();
List<>, ArrayListczy narzędzia IList. ;)
List<T>.ClearPrawidłowo usuwa wszystkie odniesienia, co pozwala GC wyczyścić alokacje w razie potrzeby. new List<T>NIE robi tego i jest nieodpowiedni we wszystkich scenariuszach
Jeśli przez „listę” masz na myśli a List<T>, to metoda Clear jest tym, czego potrzebujesz:
List<string> list = ...;
...
list.Clear();
Powinieneś nabrać zwyczaju przeszukiwania dokumentacji MSDN na ten temat.
Oto jak szybko wyszukać dokumentację dotyczącą różnych bitów tego typu:
List<T>samą klasę (od tego należy zacząć )Wszystkie te zapytania Google zawierają zestaw linków, ale zazwyczaj potrzebujesz pierwszego, który Google poda w każdym przypadku.
Aby udzielić alternatywnej odpowiedzi (kto potrzebuje 5 równych odpowiedzi?):
list.Add(5);
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now
Pamiętaj, że wszystkie inne odniesienia do starej listy nie zostały wyczyszczone (w zależności od sytuacji może to być to, czego chcesz). Również pod względem wydajności jest zwykle nieco wolniejszy.
listma nowe odniesienie. Więc nie używaj tego, jeśli używasz blokady na tej liście.
Opcja nr 1: Użyj funkcji Clear (), aby opróżnić List<T>i zachować pojemność.
Liczba jest ustawiona na 0, a odwołania do innych obiektów z elementów kolekcji są również zwalniane.
Pojemność pozostaje niezmieniona.
Opcja nr 2 - Użyj funkcji Clear () i TrimExcess (), aby ustawić List<T>stan początkowy.
Liczba jest ustawiona na 0, a odwołania do innych obiektów z elementów kolekcji są również zwalniane.
Przycinanie pustego ustawienia
List<T>powoduje ustawienie domyślnej pojemności listy.
Definicje
Liczba = liczba elementów, które faktycznie znajdują się wList<T>
Pojemność = całkowita liczba elementów, które wewnętrzna struktura danych może pomieścić bez zmiany rozmiaru.
Tylko wyczyść ()
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 () i 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);
Możesz to zrobić
var list = new List<string>();
list.Clear();