c# - method - .NET Generic Set?
list generic c# (3)
¿Existe un contenedor genérico que implemente el comportamiento ''set'' en .NET?
Sé que podría usar un Dictionary<T, Object>
(y posiblemente agregar valores nulls
como valores), porque sus teclas actúan como un conjunto, pero tenía curiosidad por si había algo listo.
Yo uso el Iesi.Collections. espacio de nombres que viene con NHibernate (documentos aquí ) - tal vez vale la pena considerar si está en .NET <3.5
HashSet<T>
en .NET 3.5
Introducido en .NET 3.5: HashSet<T>
(ver a continuación).
Introducido en .NET 4.0: ISet<T>
:
Proporciona la interfaz base para la abstracción de conjuntos. Esta interfaz proporciona métodos para implementar conjuntos, que son colecciones que tienen elementos únicos y operaciones específicas.
La interfaz tiene dos implementaciones en .NET 4+ BCL:
... proporciona operaciones de conjunto de alto rendimiento. Un conjunto es una colección que no contiene elementos duplicados, y cuyos elementos no están en ningún orden particular
Representa una colección de objetos que se mantiene en orden ordenado. Un SortedSet (Of T) mantiene un orden ordenado a medida que los elementos se insertan y eliminan sin afectar el rendimiento. Los elementos duplicados no están permitidos.
FWIW: También hay una class TreeSet<T>: SortedSet<T>
internal
class TreeSet<T>: SortedSet<T>
en el espacio de nombres System.Collections.Generic
.
Su único propósito parece ser el uso en la implementación de SortedDictionary<TKey, TValue>
.