2017-06-02 3 views
1

In meinem Code habe ich eine Funktion, die einige Daten verarbeitet und dann eine Liste zurückgibt, die sortiert werden sollte. Ich habe 2 Optionen für die Rückkehr: - SortedSet - ListeWelcher Rückgabetyp ist besser? SortedSet oder eine sortierte Liste

Der einzige Betrieb auf diesem Rückgabetyp (aber es wird sortiert werden) bisher getan iteriert.

Argument für SortedSet: - Es zwingt die Elemente sortiert werden zurückgegeben - es die Elemente impliziert zurück sortierte

Argument für eine Liste: - Der Anrufer muss nicht ein Set (und seine komplexe Funktionalität), alles, was er braucht, ist eine Liste von Gegenständen, die versprochen werden, sortiert zu werden. - Halten Sie die Schnittstelle einfach (keine SortedList)

Was denken Sie?

+0

Warum sollte sortierte Menge einfacher als sortierte Liste sein? –

+2

"Die einzige Operation, die bisher für diesen Rückgabetyp ausgeführt wurde, ist die Iteration." Das sollte dir deine Antwort genau dort geben: * gib den minimalen Typ zurück, der notwendig ist, damit der Aufrufer iteriert * - 'IEnumerable '. –

+2

Wenn Sie versprechen, dass die zurückgegebene Auflistung sortiert ist, dann geben Sie dieses Versprechen in den Methodennamen anstelle des Rückgabetyps ein. –

Antwort

4

Warum IEnumerable nicht zurückgeben? Auf diese Weise müssen sich Ihre anderen Funktionen nicht um die Verwendung von SortedSet oder List kümmern. Es ist auch einfacher, ein IEnumerable als ein bestimmtes Objekt zu behandeln. Die Verwendung von Schnittstellen ist in der Regel eine gute Methode, da die Klassen und Projekte im Allgemeinen flexibler und damit besser skalierbar sind.

Verwandte Themen