Warum gibt es keine SortedList<T> in .NET?

Warum gibt es nur ein SortedList<TKey, TValue> das sieht eher aus wie ein Wörterbuch, aber keine SortedList<T> das ist eigentlich nur eine Liste, die immer sortiert?

Laut in der MSDN-Dokumentation auf der SortedList, es ist tatsächlich intern umgesetzt als ein dynamisch-size array von KeyValuePair<TKey, TValue> dass man immer nach dem Schlüssel sortiert. Würde nicht die gleiche Klasse mehr als nützlich, eine Liste von jedem Typ T? Würde nicht passen, dass der name auch besser?

  • hmm, ein interessanter Gedanke. Aber wenn ich eine SortedList<Foo - > wie wäre es Sortiervorgang auszuführen (wheres der "Schlüssel")? Würde ich machen, Foo implementieren IComparable?
  • Stimme dir zu - gegeben, der name, den Sie wirklich nicht erwarten würden, dass dieser Klasse enthalten Schlüssel-Wert-Paare. Es ist nicht ein Wörterbuch, natürlich, wie können Sie den gleichen Schlüssel in der Liste mehrere Male.
  • ja, man könnte entweder Foo IComparable-oder Sie liefern könnte eine comparer beim erstellen der Liste.
  • wie wäre die Sortierung einer normalen Liste anders sein, von der Sortierung der Schlüssel in SortedList<TKey, TValue>?
  • ich könnte falsch sein, aber mit der SortedList Sie liefern den key (TKey), die normalerweise eine native type " (int), die vergleichbar ist standardmäßig aktiviert. Sie sind ausdrücklich zu sagen "das ist der Schlüssel zum Sortieren nach". wenn ich erklären var sortedFoo = new SortedList<Foo - >;, wie funktioniert der compiler wissen, wie ich möchte, es sortiert? Das war meine Frage (die beantwortet wurde durch @WillA)
  • Sie scheinen wie downvoting jede einzelne Antwort auf diese Frage. Ich bin froh, dass ich noch nicht eine Antwort. Im, meiner Meinung nach, etwas sein sollte downvoted, wenn es nicht hilfreich ist, und nicht, wenn Sie gingen, um den Aufwand zu liefern, eine Antwort auf die Frage, was aber nicht wirklich eine "richtige Antwort"
  • Igitt, hässlich downvote fest. Die OP ' s voting record ist nicht inspirierend.
  • zum Glück ist es ziemlich die Ausnahme.
  • Tut mir Leid, aber ich downvoted alle Antworten (außer für Dan-Tao), weil ich fand, dass Sie nicht nützlich sind. Die meisten von Ihnen gar nicht die situation zu verstehen (und noch hat Sie zunächst). Ich würde sagen, die Frage hat eine richtige Antwort, aber ich denke, nur jemand aus der .NET base class library team, die es bieten kann.
  • Wenn Sie Fragen, die SO Gemeinschaft eine Frage, ich denke, die Implikation ist in der Regel, dass man sagt, "Jemand da draußen kümmern, Ihre Gedanken zu teilen und mir helfen mit diesem?" Wenn Sie Fragen, eine Frage, wo die Antwort nur, dass Sie glücklich sein würde, mit würde müssen kommen gerade vom BCL-team, wie es scheint, die Buchung auf, SO ist das irgendwie sinnlos. Warum nicht einfach senden Sie Ihre Frage für Sie an?
  • Eine ähnliche Frage für java, die hat erhielten mehr Aufmerksamkeit. Begründung könnte sein, gleichen. why-there-is-no-sortedlist-in-java
  • Für jeden, der wirklich will, um eine sortierte Liste geben, überprüfen Sie heraus BList<T>, Teil des AList Familie von Daten-Strukturen.

InformationsquelleAutor Timwi | 2010-09-08
Schreibe einen Kommentar