Warum muss HashSet aber nicht in C # gesetzt sein?

Alte Frage

Mein Verständnis ist, dass C # in gewissem Sinne hatHashSet undset Typen. Ich verstehe wasHashSet ist. Aber warumset ist ein separates Wort? Warum ist nicht jeder SatzHashSet<Object>?

Neue Frage

Warum hat C # keine generischeSet Typ, ähnlich wieDictionary Art? Aus meiner Sicht hätte ich gerne ein Set mit Standard-Such- / Hinzufügungs- / Löschleistung. Es ist mir egal, ob es mit Hashes oder etwas anderem realisiert wird. Warum also nicht eine Set-Klasse erstellen, die tatsächlich als implementiert würde?HashSet in dieser version von c # aber vielleicht etwas anders in einer zukünftigen version?

Oder warum nicht zumindest die SchnittstelleISet?

Antworten

Gelernt, danke an alle, die unten geantwortet haben:ICollection implementiert eine Menge von dem, was Sie erwarten würdenISet. Aus meiner Sicht jedochICollection implementiertIEnumerable während Mengen nicht aufzählbar sein müssen --- Beispiel: Menge von reellen Zahlen zwischen 1 und 2 (und noch mehr, Mengen können dynamisch generiert werden). Ich bin damit einverstanden, dass dies nur eine kleine Beleidigung ist, da "normale Programmierer" selten unzählige Sets benötigen.

Ok, ich glaube ich verstehe.HashSet war unbedingt zu nennenSet aber das WortSet ist in gewissem Sinne reserviert. Insbesondere wollten die Entwickler von .NET-Architekturen eine konsistente Menge von Klassen für verschiedene Sprachen haben (sic!). Dies bedeutet, dass jeder Name der Standardklasse nicht mit einem Schlüsselwort in den .NET-Sprachen übereinstimmen darf. Das WortSetIn VB.NET wird jedoch die Groß- und Kleinschreibung nicht berücksichtigt (oder?), sodass dort leider kein Handlungsspielraum vorhanden ist.

Geheimnis gelüftet :)

Epilog

Die neue Antwort von Alex Y. verlinkt auf dieMSDN-Seite Hier wird die bevorstehende .NET 4.0-Schnittstelle beschriebenISet was sich so ziemlich so verhält, wie ich es mir vorgestellt habe und von umgesetzt wirdHashedSet. Glückliches Ende.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage