Je veux vider une liste. Comment faire ça?
.net empty list, cette page apparaît avant MSDN!
Je veux vider une liste. Comment faire ça?
.net empty list, cette page apparaît avant MSDN!
Réponses:
C'est vraiment simple:
myList.Clear();
List<>, ArrayListou des outils IList. ;)
List<T>.Clearefface correctement toutes les références, ce qui permet au GC d'effacer les allocs si nécessaire. new List<T>ne fait PAS cela et ne convient pas à tous les scénarios
Si par "liste" vous entendez a List<T>, alors la méthode Clear est ce que vous voulez:
List<string> list = ...;
...
list.Clear();
Vous devriez prendre l'habitude de rechercher la documentation MSDN sur ces choses.
Voici comment rechercher rapidement de la documentation sur divers bits de ce type:
List<T>classe elle-même ( c'est là que vous auriez dû commencer )Toutes ces requêtes Google répertorient un ensemble de liens, mais vous voulez généralement le premier que google vous donne dans chaque cas.
Pour donner une réponse alternative (Qui a besoin de 5 réponses égales?):
list.Add(5);
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now
Gardez à l'esprit que toutes les autres références à l'ancienne liste n'ont pas été effacées (selon la situation, cela peut être ce que vous souhaitez). De plus, en termes de performances, il est généralement un peu plus lent.
lista une nouvelle référence. Ne l'utilisez donc pas si vous utilisez un verrou sur cette liste.
Option 1: Utilisez la fonction Clear () pour vider List<T>et conserver sa capacité.
Count est défini sur 0 et les références à d'autres objets des éléments de la collection sont également libérées.
La capacité reste inchangée.
Option # 2 - Utilisez les fonctions Clear () et TrimExcess () pour définir List<T>l'état initial.
Count est défini sur 0 et les références à d'autres objets des éléments de la collection sont également libérées.
Le rognage d'un vide
List<T>définit la capacité de la liste sur la capacité par défaut.
Définitions
Count = nombre d'éléments qui se trouvent réellement dans leList<T>
Capacité = nombre total d'éléments que la structure de données interne peut contenir sans redimensionnement.
Effacer () uniquement
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 () et 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);
vous pouvez le faire
var list = new List<string>();
list.Clear();
Vous avez besoin de la fonction Clear () sur la liste, comme ça.
List<object> myList = new List<object>();
myList.Add(new object()); // Add something to the list
myList.Clear() // Our list is now empty