Voglio svuotare una lista. Come farlo?
.net empty list, questa pagina viene prima di MSDN!
Voglio svuotare una lista. Come farlo?
.net empty list, questa pagina viene prima di MSDN!
Risposte:
È davvero facile:
myList.Clear();
List<>, ArrayListo attrezzi IList. ;)
List<T>.Clearcancella correttamente tutti i riferimenti che consente al GC di cancellare gli allochi quando necessario. new List<T>NON lo fa ed è inadatto a tutti gli scenari effettivamente
Se per "lista" intendi una List<T>, allora il metodo Clear è quello che vuoi:
List<string> list = ...;
...
list.Clear();
Dovresti prendere l'abitudine di cercare nella documentazione MSDN su queste cose.
Ecco come cercare rapidamente la documentazione su vari bit di quel tipo:
List<T>classe stessa ( è qui che avresti dovuto iniziare )Tutte queste query di Google elencano un insieme di link, ma in genere vuoi il primo che Google ti dà in ogni caso.
Per dare una risposta alternativa (chi ha bisogno di 5 risposte uguali?):
list.Add(5);
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now
Tieni presente che tutti gli altri riferimenti al vecchio elenco non sono stati cancellati (a seconda della situazione, questo potrebbe essere quello che desideri). Inoltre, in termini di prestazioni, di solito è un po 'più lento.
listha un nuovo riferimento. Quindi non usarlo se stai usando un lucchetto in quell'elenco.
Opzione n. 1: utilizzare la funzione Clear () per svuotare List<T>e mantenere la sua capacità.
Count è impostato su 0 e vengono rilasciati anche i riferimenti ad altri oggetti dagli elementi della raccolta.
La capacità rimane invariata.
Opzione n. 2: utilizzare le funzioni Clear () e TrimExcess () per impostare List<T>lo stato iniziale.
Count è impostato su 0 e vengono rilasciati anche i riferimenti ad altri oggetti dagli elementi della raccolta.
Il taglio di un vuoto
List<T>imposta la capacità dell'elenco sulla capacità predefinita.
definizioni
Count = numero di elementi che si trovano effettivamente nel fileList<T>
Capacità = numero totale di elementi che la struttura dati interna può contenere senza ridimensionamento.
Solo 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 () e 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);
ce la puoi fare
var list = new List<string>();
list.Clear();