Tipos de Coleção Comumente Usadas

Tipos de coleção são as variações comuns de coleções de dados, como tabelas de hash, filas, pilhas, dicionários e listas.

Coleções são baseadas na interface ICollection, na interface IList, na interface IDictionary ou suas contrapartes genéricos.A interface IList e a interface IDictionary ambas derivam da interface ICollection; portanto, todas as coleções se baseiam na interface ICollection direta ou indiretamente.Em coleções com base na interface IList (como Array, ArrayList, ou List<T>) ou diretamente na interface ICollection (como Queue, Stack, ou LinkedList<T>) , cada elemento contém apenas um valor.Em coleções com base na interface IDictionary (como as classes Hashtable e SortedList, ou as classes genéricas Dictionary<TKey, TValue> e SortedList<TKey, TValue>), cada elemento contém tanto uma chave quanto um valor.A classe KeyedCollection<TKey, TItem> é exclusiva porque é uma lista de valores com chaves incorporadas aos valores e, portanto, ela se comporta como uma lista e como um dicionário.

Coleções genéricas são a melhor solução para rigidez de tipos.No entanto, se a sua linguagem não suportar os genéricos, o namespace System.Collections inclui coleções base, como CollectionBase, ReadOnlyCollectionBase, e DictionaryBase, que são classes base abstratas que podem ser estendidas para criar classes de coleção com rigidez de tipos.

Coleções podem variar, dependendo como os elementos são armazenados, como são classificados, como as pesquisas são executadas, e como as comparações são feitas.A classe Queue e a classe genérica Queue<T> fornecem listas de primeiro a entrar, primeiro a sair, enquanto a classe Stack e a classe genérica Stack<T> fornecem listas de último a entrar, primeiro a sair..A classe SortedList e a classe genérica SortedList<TKey, TValue> fornecem versões classificadas da classe Hashtable e da classe genérica Dictionary<TKey, TValue>.Os elementos de um Hashtable ou um Dictionary<TKey, TValue> são acessíveis somente pela chave do elemento, mas os elementos de um SortedList ou um KeyedCollection<TKey, TItem> são acessíveis tanto pela chave quanto pelo índice do elemento.Os índices em todas as coleções são de base zero, exceto Array, que permite matrizes que não são de base zero.

O recurso LINQ para Objetos permite aos desenvolvedores usar consultas LINQ para acessar objetos na memória, desde que o tipo de objeto implemente IEnumerable ou IEnumerable<T>.Consultas LINQ fornecem um padrão comum para acessar dados, são geralmente mais concisas e legíveis que loops foreach padrão e fornecem recursos de filtragem, classificação e agrupamento.Consultas LINQ também podem melhorar o desempenho.Para obter mais informações, consulte LINQ para Objetos.

Nesta seção

Referência

Seções relacionadas

  • Coleções e Estruturas de Dados
    Discute os diversos tipos de coleção disponíveis no .NET Framework, inclusive pilhas, filas, listas, matrizes e estruturas.

  • Classes genéricas no .NET Framework
    Descreve o recurso de classes ou métodos genéricos, incluindo coleções, representantes e interfaces genéricas fornecidas pelo .NET Framework.Fornece links para a documentação dos recursos para C#, Visual Basic, Visual C++ e tecnologias auxiliares como a reflexão.