Eu quero esvaziar uma lista. Como fazer isso?
.net empty list, esta página aparecerá antes do MSDN!
Eu quero esvaziar uma lista. Como fazer isso?
.net empty list, esta página aparecerá antes do MSDN!
Respostas:
É muito fácil:
myList.Clear();
List<>, ArrayListou implementos IList. ;)
List<T>.Clearapaga adequadamente todas as referências, o que permite ao GC limpar as alocações quando necessário. new List<T>NÃO faz isso e é inadequado em todos os cenários de forma eficaz
Se por "lista" você quer dizer um List<T>, então o método Clear é o que você deseja:
List<string> list = ...;
...
list.Clear();
Você deve adquirir o hábito de pesquisar a documentação do MSDN sobre essas coisas.
Veja como pesquisar rapidamente por documentação sobre vários bits desse tipo:
List<T>própria classe ( é aqui que você deveria ter começado )Todas essas consultas do Google listam um pacote de links, mas normalmente você quer o primeiro que o google fornece em cada caso.
Para dar uma resposta alternativa (quem precisa de 5 respostas iguais?):
list.Add(5);
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now
Lembre-se de que todas as outras referências à lista antiga não foram apagadas (dependendo da situação, pode ser o que você deseja). Além disso, em termos de desempenho, geralmente é um pouco mais lento.
listtem uma nova referência. Portanto, não use isso se estiver usando um cadeado nessa lista.
Opção nº 1: Use a função Clear () para esvaziar List<T>e reter sua capacidade.
A contagem é definida como 0 e as referências a outros objetos de elementos da coleção também são liberadas.
A capacidade permanece inalterada.
Opção # 2 - Use as funções Clear () e TrimExcess () para definir List<T>o estado inicial.
A contagem é definida como 0 e as referências a outros objetos de elementos da coleção também são liberadas.
Cortar um vazio
List<T>define a capacidade da Lista para a capacidade padrão.
Definições
Contagem = número de elementos que estão realmente noList<T>
Capacidade = número total de elementos que a estrutura de dados interna pode conter sem redimensionar.
Limpar () apenas
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);
você pode fazer isso
var list = new List<string>();
list.Clear();
Você precisa da função Clear () na lista, assim.
List<object> myList = new List<object>();
myList.Add(new object()); // Add something to the list
myList.Clear() // Our list is now empty