Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os tipos de coleção representam diferentes maneiras de coletar dados, como tabelas de hash, filas, pilhas, sacos, dicionários e listas.
Todas as coleções são baseadas nas interfaces ICollection ou ICollection<T>, seja direta ou indiretamente. IList e IDictionary os seus homólogos genéricos derivam todos destas duas interfaces.
Em coleções baseadas em IList ou diretamente em ICollection, cada elemento contém apenas um valor. Estes tipos incluem:
Em coleções baseadas na IDictionary interface, cada elemento contém uma chave e um valor. Estes tipos incluem:
- Hashtable
- SortedList
- SortedList<TKey,TValue>
- Dictionary<TKey,TValue>
- ConcurrentDictionary<TKey,TValue>
A KeyedCollection<TKey,TItem> classe é exclusiva porque é uma lista de valores com chaves incorporadas dentro dos valores. Como resultado, ele se comporta como uma lista e como um dicionário.
Quando precisar de acesso eficiente às coleções multi-threaded, use as coleções genéricas no System.Collections.Concurrent espaço de nomes.
As Queue classes e Queue<T> fornecem listas de primeiro a entrar, primeiro a sair. As Stack classes e Stack<T> fornecem listas de último a entrar, primeiro a sair.
Digitação forte
As coleções genéricas são a melhor solução para uma tipagem rigorosa. Por exemplo, adicionar um elemento de qualquer tipo diferente de um Int32 a uma List<Int32> coleção causa um erro em tempo de compilação. No entanto, se a sua linguagem não oferecer suporte a genéricos, o System.Collections namespace inclui classes base abstratas que você pode estender para criar classes de coleção que são fortemente tipificadas. Estas classes base incluem:
Como variam as coleções
As coleções variam na forma como armazenam, classificam e comparam elementos e como realizam pesquisas.
A SortedList classe e a SortedList<TKey,TValue> classe generic fornecem versões ordenadas da Hashtable classe e da Dictionary<TKey,TValue> classe genérica.
Todas as coleções usam índices baseados em zero, exceto Array, que permite matrizes que não são baseadas em zero.
Você pode acessar os elementos de a SortedList ou a KeyedCollection<TKey,TItem> pela chave ou pelo índice do elemento. Você só pode acessar os elementos de a Hashtable ou a Dictionary<TKey,TValue> pela chave do elemento.
Usar o LINQ com tipos de coleção
O recurso LINQ to Objects fornece um padrão comum para acessar objetos na memória de qualquer tipo que implemente IEnumerable ou IEnumerable<T>. As consultas LINQ têm vários benefícios em relação às construções padrão, como foreach loops:
- São concisos e mais fáceis de compreender.
- Eles podem filtrar, ordenar e agrupar dados.
- Eles podem melhorar o desempenho.
Para obter mais informações, consulte LINQ to Objects (C#),LINQ to Objects (Visual Basic) e Parallel LINQ (PLINQ).
Tópicos relacionados
| Título | Descrição |
|---|---|
| Coleções e Estruturas de Dados | Discute os vários tipos de coleção disponíveis no .NET, incluindo pilhas, filas, listas, matrizes e dicionários. |
| Tipos de coleção Hashtable e Dictionary | Descreve as características de tipos de dicionário baseados em hash, genéricos e não genéricos. |
| Tipos de coleção ordenados | Descreve classes que fornecem funcionalidade de classificação para listas e conjuntos. |
| Genéricos | Descreve a funcionalidade de genéricos, incluindo as coleções genéricas, delegados e interfaces fornecidas pelo .NET. Fornece links para documentação de funcionalidades para C#, Visual Basic e Visual C++, e para tecnologias de suporte, incluindo reflexão. |
Referência
System.Collections.ICollection
System.Collections.Generic.ICollection<T>
System.Collections.Generic.IList<T>