Partilhar via


Tipos de Coleção Comumente Usadas

Os tipos de coleção são variações comuns de conjuntos de dados, como, por exemplo, tabelas de hash, filas, pilhas, bolsas, dicionários e listas.

Coleções são baseadas na interface ICollection, na interface IList, na interface IDictionary ou suas contrapartes genéricos. O IList interface e o IDictionary interface são derivadas da ICollection interface; Portanto, todas as coleções baseiam a ICollection interface direta ou indiretamente. Em coleções com base na IList interface (como Array, ArrayList, ou List<T>) ou diretamente sobre o ICollection interface (como Queue, ConcurrentQueue<T>, Stack, ConcurrentStack<T> ou LinkedList<T>), cada elemento contém apenas um valor. Em coleções com base na IDictionary interface (como o Hashtable e SortedList classes, o Dictionary<TKey, TValue> e SortedList<TKey, TValue> classes genéricas), ou o ConcurrentDictionary<TKey, TValue> classes, cada elemento contém uma chave e 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. Quando é necessário o acesso do eficiente conjunto de vários segmentos, use as coleções genéricas de System.Collections.Concurrent namespace.

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 e Parallel LINQ PLINQ).

Tópicos relacionados

Título

Descrição

Tipo de Coleção Array

Descreve os recursos de arrays que permitem que eles sejam tratados como coleções.

Coleções do Tipo ArrayList e List

Descreve os recursos das listas genéricas e quais são os tipos de coleção mais comumente usadas.

Tipos de Coleção Tabela de Hash e Dicionário

Descreve os recursos dos tipos de dicionário baseados em hash genéricos e não genéricos.

Tipos de coleção classificada

Descreve as classes que fornecem funcionalidade de classificação para listas e conjuntos.

Tipos de Coleção Fila

Descreve os recursos das filas genéricas e não genéricas.

Tipos de Coleção Pilha

Descreve os recursos das pilhas genéricas e não genéricas.

Coleção do Tipo HashSet

Descreve o tipo de coleção System.Collections.Generic.HashSet<T> genérica.

Operações de Conjuntos HashSet e LINQ

Descreve operações de conjunto fornecidas pelo tipo de coleção System.Collections.Generic.HashSet<T> e operações de Definição LINQ.

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.

Referência

System.Collections

System.Collections.Generic

System.Collections.ICollection

System.Collections.Generic.ICollection<T>

System.Collections.IList

System.Collections.Generic.IList<T>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey, TValue>