Quando Usar Coleções Genéricas

Geralmente, é recomendável usar coleções genéricas, porque você ganha a vantagem imediata de segurança de tipo sem ter de derivar de um tipo de coleção base e implementar membros específicos do tipo.Tipos de coleção genérica também geralmente executar melhor do que os tipos de coleção não genérica correspondentes (e melhor do que os tipos derivados de tipos de coleção base não genéricos) quando os elementos da coleção são tipos de valor, porque com genéricos não é necessário colocar os elementos em caixas.

Os seguintes tipos genéricos correspondem aos tipos de coleção existentes:

Tipos adicionais

Há vários tipos coleção genérica que não têm correspondentes não genéricos:

LINQ para Objetos

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.

Funcionalidade adicional

Alguns dos tipos genéricos possuem funcionalidades que não são encontradas nos tipos de coleção não genéricas.Por exemplo, a classe List<T>, que corresponde à classe não genérica ArrayList, tem um número de métodos que aceitam representantes genéricos, como representante Predicate<T> que permite que você especifique métodos para pesquisar a lista, o representante Action<T> que representa métodos que atuam em cada elemento da lista, e o representante Converter<TInput, TOutput> que permite que você defina conversões entre tipos.

A classe List<T> permite que você especifique suas próprias implementações IComparer<T> de interface genérica para classificação e pesquisa da lista.As classes SortedDictionary<TKey, TValue> e SortedList<TKey, TValue> também têm esse recurso, e além disso permitem que os comparadores sejam especificados quando a coleção é criada.De maneira semelhante, as classes Dictionary<TKey, TValue> e KeyedCollection<TKey, TItem> permitem que você especifique seus próprios comparadores de igualdade.

Consulte também

Conceitos

Visão geral das classes genéricas no .NET Framework

Outros recursos

Tipos de Coleção Comumente Usadas