Quiero vaciar una lista. ¿Como hacer eso?¿Cómo vaciar una lista en C#?
Respuesta
Es muy fácil:
myList.Clear();
... si la lista es en realidad una 'Lista <>', 'ArrayList', o implementa' IList'. ;) – Lucero
@Lucero se llama como una lista si no es ninguno de esos? –
Dado que este es un éxito en google y me encuentro con este problema, estoy haciendo un comentario al respecto. Si utiliza la misma lista en un bucle y usa clear, la lista a menudo mantendrá la referencia a los objetos antiguos: a menudo termino usando = new LisT
se puede hacer eso
var list = new List<string>();
list.Clear();
Si por "lista" quiere decir un List<T>
, entonces el método Clear es lo que quiere:
List<string> list = ...;
...
list.Clear();
Debe adquirir el hábito de buscar en la documentación de MSDN sobre estas cosas.
Así es como buscar rápidamente documentación sobre varios bits de ese tipo:
- List Class - proporciona la clase
List<T>
en sí (aquí es donde debería haber comenzado) - List.Clear Method - proporciona la documentación en el método Clear
- List.Count Property - proporciona la documentación sobre la propiedad Count
Todas estas consultas de Google enumeran un conjunto de enlaces, pero normalmente desea la primera que google le proporcione en cada caso.
"Todos estos enumeran un conjunto de enlaces, pero normalmente desea el primero". ¿A menos que quieras vaciar la lista? –
Lo siento, debería haber sido más claro. Por lo general, desea el primer enlace que Google le ofrece, no la "Clase de la lista". –
Puede utilizar el método claro
List<string> test = new List<string>();
test.Clear();
Es necesario la función Clear() en la lista, como tal.
List<object> myList = new List<object>();
myList.Add(new object()); // Add something to the list
myList.Clear() // Our list is now empty
Para dar una respuesta alternativa (¿Quién necesita 5 respuestas iguales?):
list.Add(5);
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now
Tenga en cuenta que todas las demás referencias a la lista de edad no se han borrado (dependiendo de la situación, este podría ser lo que quieras). Además, en términos de rendimiento, generalmente es un poco más lento.
¿Puedes verificar que setting list = new List <>() sea más lento que list.Clear() ;? De acuerdo con MSDN (link below) list.Clear(); es una operación de O (N), y no puedo imaginar que crear una nueva lista tarde más. https://msdn.microsoft.com/en-us/library/dwb5h52a(v=vs.110).aspx –
DotNetPerls hizo un punto de referencia y encontró que la nueva Lista <> es más rápida. http://www.dotnetperls.com/list-clear –
Opción n. ° 1: utilice la función para vaciar el List<T>
y conservar su capacidad.
-
conde se establece en 0, y las referencias a otros objetos de elementos de la colección también se liberan.
-
capacidad se mantiene sin cambios.
Opción # 2 - Uso y TrimExcess() funciones para configurar List<T>
a su estado inicial.
-
conde se establece en 0, y las referencias a otros objetos de elementos de la colección también se liberan.
-
Recortar una vacía
List<T>
establece la capacidad de la lista a la capacidad defecto.
Definiciones
Count = número de elementos que son en realidad en el List<T>
Capacity = número total de elementos de la estructura de datos interna puede contener sin cambiar el tamaño.
Clear() Sólo
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() y 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);
- 1. Forma correcta de vaciar una C-String
- 2. ¿Cómo vaciar/destruir una sesión en rieles?
- 3. Inicialice una cadena en C para vaciar la cadena
- 4. Cómo vaciar/vaciar Windows ¿LEER el caché de disco en C#?
- 5. Cómo borrar/vaciar el cartón en la vista Vaciar 0isarpear
- 6. Cómo vaciar un TFileStream?
- 7. Cómo vaciar una tubería usando bash
- 8. ¿Cómo vaciar una matriz de caracteres?
- 9. ¿Cómo vaciar una base de datos SQL?
- 10. Vaciar a ListView
- 11. Vaciar una matriz en Java/procesamiento
- 12. Cómo buscar una lista en C#
- 13. Cómo ordenar una lista en C#
- 14. ¿Cómo podría crear una lista en C++?
- 15. ¿Cómo trunco una lista en C#?
- 16. Cómo vaciar el buffer io en Erlang?
- 17. ¿Cómo vaciar un socket en python?
- 18. Django admin Lista de la lista + ForeignKey = Vaciar Cambiar la lista
- 19. cómo vaciar firefox dom localstorage
- 20. Cómo vaciar correctamente un NSMutableArray
- 21. ¿Cómo vaciar las aplicaciones de iPad?
- 22. ¿Cómo convierto una enumeración en una lista en C#?
- 23. Cómo borrar/dejar/vaciar una colección MongoDb con Casbah
- 24. jquery cómo vaciar el campo de entrada
- 25. Inicialización de una lista genérica en C#
- 26. Eliminar objetos duplicados en una lista (C#)
- 27. Una matriz de lista en C#
- 28. cómo vaciar un archivo usando Python
- 29. Cómo vaciar el contenido de un div
- 30. ¿Cómo divido una lista basada en el índice en C#?
leído que MSDN bien? – Massif
El tiempo de respuesta aquí es más rápido de lo que hubiera sido leer/buscar MSDN – V4Vendetta
Además, la respuesta ahora es más fácil de encontrar aquí que en MSDN. –