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 |
---|---|
Descreve os recursos de arrays que permitem que eles sejam tratados como coleções. |
|
Descreve os recursos das listas genéricas e quais são os tipos de coleção mais comumente usadas. |
|
Descreve os recursos dos tipos de dicionário baseados em hash genéricos e não genéricos. |
|
Descreve as classes que fornecem funcionalidade de classificação para listas e conjuntos. |
|
Descreve os recursos das filas genéricas e não genéricas. |
|
Descreve os recursos das pilhas genéricas e não genéricas. |
|
Descreve o tipo de coleção System.Collections.Generic.HashSet<T> genérica. |
|
Descreve operações de conjunto fornecidas pelo tipo de coleção System.Collections.Generic.HashSet<T> e operações de Definição LINQ. |
|
Discute os diversos tipos de coleção disponíveis no .NET Framework, inclusive pilhas, filas, listas, matrizes e estruturas. |
|
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.ICollection
System.Collections.Generic.ICollection<T>
System.Collections.Generic.IList<T>