Ich möchte eine Liste leeren. Wie geht das?
.net empty listdiese Seite bei Google vor MSDN angezeigt wird!
Ich möchte eine Liste leeren. Wie geht das?
.net empty listdiese Seite bei Google vor MSDN angezeigt wird!
Antworten:
Es ist wirklich einfach:
myList.Clear();
List<>, ArrayListoder Geräte IList. ;)
List<T>.ClearAlle Referenzen werden ordnungsgemäß gelöscht, sodass der GC die Zuweisungen bei Bedarf löschen kann. new List<T>tut dies NICHT und ist in
Wenn Sie mit "Liste" a meinen List<T>, dann ist die Clear- Methode genau das , was Sie wollen:
List<string> list = ...;
...
list.Clear();
Sie sollten es sich zur Gewohnheit machen, die MSDN-Dokumentation zu diesen Dingen zu durchsuchen.
So suchen Sie schnell nach Dokumentation zu verschiedenen Bits dieses Typs:
List<T>Klasse selbst bereit ( hier hätten Sie beginnen sollen )Alle diese Google-Abfragen enthalten ein Bündel von Links. In der Regel möchten Sie jedoch jeweils den ersten Link, den Google Ihnen zur Verfügung stellt.
Um eine alternative Antwort zu geben (Wer braucht 5 gleiche Antworten?):
list.Add(5);
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now
Beachten Sie, dass alle anderen Verweise auf die alte Liste nicht gelöscht wurden (je nach Situation ist dies möglicherweise das, was Sie möchten). Auch in Bezug auf die Leistung ist es normalerweise etwas langsamer.
listes eine neue Referenz gibt. Verwenden Sie das also nicht, wenn Sie eine Sperre für diese Liste verwenden.
Option 1: Verwenden Sie die Funktion Clear () , List<T>um die Kapazität zu leeren und beizubehalten.
Count wird auf 0 gesetzt, und Verweise auf andere Objekte aus Elementen der Sammlung werden ebenfalls freigegeben.
Die Kapazität bleibt unverändert.
Option 2 - Verwenden Sie die Funktionen Clear () und TrimExcess () , um List<T>den Ausgangszustand festzulegen .
Count wird auf 0 gesetzt, und Verweise auf andere Objekte aus Elementen der Sammlung werden ebenfalls freigegeben.
Durch das Trimmen eines Leerzeichens wird
List<T>die Kapazität der Liste auf die Standardkapazität festgelegt.
Definitionen
Count = Anzahl der Elemente, die sich tatsächlich in der befindenList<T>
Kapazität = Gesamtzahl der Elemente, die die interne Datenstruktur ohne Größenänderung enthalten kann.
Nur Clear ()
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 () und 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);
du kannst das tun
var list = new List<string>();
list.Clear();
Sie benötigen die Clear () - Funktion in der Liste.
List<object> myList = new List<object>();
myList.Add(new object()); // Add something to the list
myList.Clear() // Our list is now empty