
Είναι ένα γενικό δοχείο για την εφαρμογή της «set» η συμπεριφορά στο .NET εκεί;


Ξέρω ότι θα μπορούσε απλά να χρησιμοποιήσετε ένα `Dictionary<T, Object>`(και πιθανώς να προσθέσετε `nulls`ως τιμές), διότι τα κλειδιά της να ενεργεί ως ένα σύνολο, αλλά ήμουν περίεργος αν υπάρχει κάτι έτοιμο.

 
.NET Γενικό σύνολο;
===================



`HashSet<T>` σε .NET 3.5

 

Χρησιμοποιώ τα Iesi.Collections. ονομάτων που έρχεται με NHibernate (docs [εδώ](http://monogis.org/monogis_doc/html/Iesi.Collections.html) ) - ίσως αξίζει να εξεταστεί εάν είστε σε .NET <3.5

 

Δημιουργήθηκαν το .NET 3.5: [`HashSet<T>`](http://msdn.microsoft.com/en-us/library/bb359438%28v=vs.90%29.aspx)(βλέπε παρακάτω).


Δημιουργήθηκαν το .NET 4.0: [`ISet<T>`](http://msdn.microsoft.com/en-us/library/dd412081.aspx):



> 
> Παρέχει τη διεπαφή βάση για την άντληση συνόλων. Αυτή η διεπαφή παρέχει μεθόδους για την εφαρμογή σύνολα, τα οποία είναι συλλογές που έχουν μοναδικά στοιχεία και τις συγκεκριμένες δράσεις.
> 
> 
> 


Η διεπαφή έχει δύο εφαρμογές σε .NET 4+ BCL:


* [`HashSet<T>`](http://msdn.microsoft.com/en-us/library/bb359438.aspx):



> 
> ... παρέχει σύνολο λειτουργιών υψηλής απόδοσης. Ένα σύνολο είναι μια συλλογή που δεν περιέχει διπλότυπα στοιχεία, και των οποίων τα στοιχεία δεν είναι σε καμία ιδιαίτερη διαταγή
> 
> 
>
* [`SortedSet<T>`](http://msdn.microsoft.com/en-us/library/dd412070.aspx):



> 
> Αντιπροσωπεύει μια συλλογή αντικειμένων που διατηρείται σε ταξινομημένη σειρά. Μια SortedSet (Τ) διατηρεί μια ταξινομημένη σειρά καθώς τα στοιχεία εισάγονται και διαγράφονται χωρίς να επηρεάζεται η απόδοση. Διπλότυπο στοιχεία δεν επιτρέπονται.
> 
> 
>


FWIW: Υπάρχει επίσης ένα κάτω από το χώρο ονομάτων . 
Μοναδικός σκοπός του φαίνεται να είναι η χρήση κατά την εφαρμογή της .**`internal`** `class TreeSet<T>: SortedSet<T>``System.Collections.Generic`  
[`SortedDictionary<TKey, TValue>`](http://msdn.microsoft.com/en-us/library/f7fta44c.aspx)

 