2010-04-17 12 views
13

me gustaría tener un contenedor¿Hay un equivalente de std :: set en C#?

StdStyleSet<A> 

de

class A : IComparable<A> { ... } 

que satisface las propiedades de std :: set. Esto sería especialmente:

  • Los elementos themselve son las claves
  • ordenan automáticamente en la inserción

Respuesta

14

SortedSet<T>: ver documents - aunque técnicamente, está en el .NET Framework.

Para versiones anteriores, puede usar un HashSet y ordenar utilizando LINQ, lo que no es ideal si consume principalmente el conjunto de forma ordenada. Alternativamente, puede usar un SortedDictionary<TKey,TValue> con el valor Object y almacenar sus elementos en las claves con nulos para los valores.

+3

Eso está en .NET 4 ... les tomó suficiente tiempo. –

+0

¡Agradable! ¿Entonces no hay solución para versiones anteriores? – Danvil

+2

@Danvil: puede usar un HashSet y manejar cualquier clasificación con LINQ, o usar SortedDictionary y almacenar nulos para los valores, es decir, usar solo las teclas. – tvanfosson

Cuestiones relacionadas