Hi C#er,
hab mal ne frage. Wie schon im Betreff zu lesen, gibt es in C# eine alternative zu dem Java Set, SortedSet und vielleicht TreeSet?
Danke in voraus für die Antworten.
MfG
Hallo der-basti,
==> HashSet, ist aber in 2.0 noch nicht enthalten.
Ansonsten auch Dictionary in der in [Artikel] Grundlegendes zu Hashtable/Dictionary weiter unten beschriebenen Nutzungsweise.
herbivore
Set = List mit zusätzlicher Prüfung vor dem Einfügen auf !Contains(object)
SortedSet = SortedList + Prüfung
TreeSet = gibt keine direkte Entsprechung, am ehesten SortedDictionary
Oder du nutzt diese Lib, da gibt es eine entsprechende Implementierung (und noch andere tolle Dinger):
Danke für dei Antworten!
Hab noch was von NHibernate gefunden: using Iesi.Collections;
Ich bins nochmal.
Und zwar habe ich ein Problem mit dem "SortedSet".
Wie wende ich es auf eine IList an? Wenns geht mit CodeSnippes.
Danke & MfG
Hallo der-basti,
wenn SortdedSet IList implementiert, musst du es einfach nur casten. Wenn nicht, geht es nicht.
herbivore
Original von der-basti
Ich bins nochmal.
Und zwar habe ich ein Problem mit dem "SortedSet".
Wie wende ich es auf eine IList an? Wenns geht mit CodeSnippes. Vielleicht verwenden wir beide einfach nur unterschiedliche Begriffe für die Benennung "Set", aber wie um alles in der Welt sollte ein Index bei einem Set auch nur ansatzweise sinnvoll sein?
ICollection<T> könnte ich voll und ganz nachvollziehen, aber IList<T>? 🤔
Original von Robert G
...aber wie um alles in der Welt sollte ein Index bei einem Set auch nur ansatzweise sinnvoll sein?
Korrekt. Ein Set hat als Abbildung des mathematischen Mengenbegriffs zwei Eigenschaften:
Hallo zusammen,
hm, wir reden über SortedSet. Also "keine Ordnung" stimmt schon mal nicht. Also ist bei einem gegebenen SortedSet der Index jedes Elements wohldefiniert.
Aber unabhängig davon: Ich denke wir wären uns einig, dass auch für Set (also ohne Sorted) die Möglichkeit der Enumeration denkbar und sinnvoll wäre, also wenn Set IEnumerable implementiert. Dadurch bekommt aber zum Enummerationszeitpunkt jedes Element auch quasi seinen Index verpasst. Warum dann also nicht IList<T> auch für Set erlauben?
herbivore
svenson hat es genau getroffen!
Was gibt es die zu der Def. passt? (Menge - ohne Dublikate..)
Das auch z.B 'IList<IList>' geht. Also Tab in Tab
Ich hatte eben eine IList, mit dieser komme ich aber nicht hin!
Edit: List<IEnumerable>?
Original von herbivore
Hallo zusammen,hm, wir reden über SortedSet. Also "keine Ordnung" stimmt schon mal nicht.
Tja, Java hat sich eben aus dem mathematischen Begriff "Set" nur die Eigenschaft "keine Duplikate" geholt. Sicher muss man Elemente aufzählen können, aber aus mathematischer Sicht wäre diese Aufzählung bei Mengen total zufällig. In Java hat aber bereits das Set eine definierte Reihenfolge ("natural order" sprich Einfügereihenfolge), bei SortedList eben eine sortierte Reihenfolge.
Wo wir grad bei Schwächen sind. Ein Set müßte ja auch die Nullmenge als Element erlauben (also "null" als Element).
Die Java-Spec sagt dazu:
"**Some **set implementations have restrictions on the elements that they may contain."
Die entsprechende Exception beim Einfügen von null ist daher optional. Lustige Spezifikation für eine plattformübergreifende Plattform. 😉