.NET conjunto genérico?

votos
10

Existe um contêiner genérico implementar o comportamento 'set' em .NET?

Eu sei que eu poderia usar apenas um Dictionary<T, Object>(e possivelmente adicionar nullscomo valores), porque suas chaves agir como um conjunto, mas eu estava curioso para saber se há algo pronto.

Publicado 09/12/2008 em 20:21
fonte usuário
Em outras línguas...                            


3 respostas

votos
19

HashSet<T> em 3,5 .NET

Respondeu 09/12/2008 em 20:27
fonte usuário

votos
3

Eu uso os Iesi.Collections. namespace que vem com o NHibernate (docs aqui ) - talvez vale a pena considerar se você estiver em .NET <3,5

Respondeu 09/12/2008 em 20:31
fonte usuário

votos
1

Introduzido no .NET 3.5: HashSet<T>(ver abaixo).

Introduzido em .NET 4.0: ISet<T>:

Fornece a interface base para a captação de sets. Essa interface fornece métodos para conjuntos de execução, que são coleções que têm elementos únicos e operações específicas.

A interface tem duas implementações no .NET 4+ BCL:

  • HashSet<T>:

    ... fornece operações de conjunto de alto desempenho. Um conjunto é um grupo que não contém elementos duplicados, e cujos elementos estão em nenhuma ordem particular

  • SortedSet<T>:

    Representa uma coleção de objetos que é mantida na ordem de classificação. Um SortedSet (Of T) mantém uma ordem de classificação como elementos são inseridos e eliminado, sem afectar o desempenho. elementos duplicados não são permitidos.

FWIW: Há também um está sob o namespace . Seu único propósito parece ser o uso na implementação de .internal class TreeSet<T>: SortedSet<T>System.Collections.Generic
SortedDictionary<TKey, TValue>

Respondeu 02/10/2013 em 17:06
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more