Gibt eine Kopie der Eingabe liste sortiert nach dir zurück. Die Richtung dir muss :Ascending oder :Descending sein. Die Liste muss homogen sein. Alle Elemente der Liste müssen entweder numerisch (Typ Integer und/oder Number) oder alphabetisch (String) sein, es sei denn, eine key-Funktion wird bereitgestellt, durch die die Listenelemente entsprechend konvertiert werden. Bei einer heterogenen Liste wird ein Fehler generiert.
Auch sekundäre und tertiäre Sortiervorgänge sind möglich. Wenn zwei Elemente nach Anwendung der key-Funktion gleich sind, können sie nach einem sekundären Kriterium sortiert werden. Bei den Argumenten für dir und key kann es sich auch um eine Liste mit Namen handeln. Das erste dir- bzw. key-Argument ist das primäre Sortierkriterium. Nach Bedarf können weitere Kriterien verwendet werden.
sort ( list As List, _ dir As Name, _ Optional key As Name = :Identity) As List
Argument | Typ | Beschreibung |
---|---|---|
List | Liste | Die zu sortierende Eingabe liste. |
dir | Alle | Gibt die Sortierrichtung an. Mögliche Optionen: :Ascending oder :Descending. Kann als einzelner Wert angegeben werden, der für alle Sortierschlüssel gilt, oder als Liste mit jeweils einem Wert je Sortierschlüssel, durch die die Sortierrichtung für jeden Schlüssel speziell festgelegt wird. |
key | Alle | Optional. Gibt den Namen einer Funktion an, die auf jedes Element der Liste angewendet wird, um einen Sortierschlüssel zu erhalten. Vorgabe ist :Identity. Die key-Funktion muss einen numerischen Wert oder eine Zeichenfolge zurückgeben. Wenn die Sortierung über mehrere Ebenen erfolgen soll, können Sie auch eine Liste mit Funktionsnamen angeben. |
Intent >sort({:a, :d, :r, :c, :b}, :Descending) --> {:r, :d, :c, :b, :a}Gibt eine einfache Liste mit Namenswerten in umgekehrter Reihenfolge ihrer Werte sortiert zurück.
Intent >sort({:a, :d, :r, 3.1, :b, :c}, :Ascending)Fehler: Die Liste wurde durch die Anwendung der key-Funktion #1 heterogen.
Die Sortierschlüssel müssen homogen sein.
Intent >sort({{:a,:d}, {:r,:b}, {:c,:x}}, :Ascending)Fehler: key-Funktion #1 hat weder Integer, Number, String noch Name zurückgegeben.
Wenn Sie eine Liste sortieren möchten, die keine Zahlen oder Zeichenfolgen enthält, müssen Sie den Namen einer key-Funktion angeben, die für jedes Element der Liste eine Zahl oder Zeichenfolge zurückgibt. In diesem Beispiel hat der Versuch, eine Liste mit Listen direkt zu sortieren, zu einem Fehler geführt.
Intent >sort({{:a,:d}, {:r,:b}, {:c,:x}}, :Ascending, key := :first) --> {{:a, :d}, {:c, :x}, {:r, :b}}Die Listen in diesem Beispiel wurden mit der key-Funktion first sortiert.
Intent >sort({{:a,:d}, {:r,:b}, {:c,:x}}, :Ascending, key := :second) --> {{:r, :b}, {:a, :d}, {:c, :x}}Diese Listen wurden mit der key-Funktion second sortiert.
Intent >sort({{4,:a,7}, {1,:c,4}, {4,:a,5}, {1,:c,3}, {1,:a,5}}, :Ascending, key := {:first, :third}) --> {{1, :c, 3}, {1, :c, 4}, {1, :a, 5}, {4, :a, 5}, {4, :a, 7}}Die Listen in diesem Beispiel wurden mit der key-Funktion first als primärer Schlüssel und anschließend mit der key-Funktion third als sekundärer Schlüssel sortiert.
Intent >sort({{4,:a,7}, {1,:c,4}, {4,:a,5}, {1,:c,3}, {1,:a,5}}, :Ascending, key := {:first, :second, :third}) --> {{1, :a, 5}, {1, :c, 3}, {1, :c, 4}, {4, :a, 5}, {4, :a, 7}}Die Listen in diesem Beispiel wurden mit der key-Funktion first als primärer Schlüssel, mit der key-Funktion second als sekundärer Schlüssel und schließlich mit der key-Funktion third als tertiärer Schlüssel sortiert. Alle Sortierschlüssel wurden in aufsteigender Reihenfolge (:Ascending) angewendet.
Intent >sort({{4,:a,7}, {1,:c,4}, {4,:a,5}, {1,:c,3}, {1,:a,5}}, {:ascending, :descending}, key := {:first, :third}) --> {{1, :a, 5}, {1, :c, 4}, {1, :c, 3}, {4, :a, 7}, {4, :a, 5}}Die Listen in diesem Beispiel wurden mit der key-Funktion first als primärer Schlüssel und der key-Funktion third als sekundärer Schlüssel sortiert, die Sortierrichtung ist jedoch für den primären Schlüssel :Ascending (aufsteigend) und für den sekundären Schlüssel :Descending (absteigend). Wenn alle Sortierkriterien die gleiche Richtung haben, müssen Sie die Richtung nicht erneut angeben (siehe Beispiel 6 und 7).