Wenn ich eine Abfrage mache, Elemente wie folgt bestellend, bekomme ich aufsteigende Reihenfolge.
%Vor% Wenn ich das Schlüsselwort ascending
hinzufüge, bekomme ich die gleichen Ergebnisse.
Ich weiß, dass das Hinzufügen des Schlüsselworts ascending
im zweiten Beispiel die Lesbarkeit erhöhen könnte, da die Standardreihenfolge von orderby
nicht mehr benötigt wird.
Gibt es einen anderen Grund dafür, dass das Schlüsselwort ascending
existiert?
Ich bin auch daran interessiert, zu wissen, warum dies (Bruchänderung?) nur für den Einsatz in einem bestimmten Fall erzwungen wurde.
Bearbeiten: Siehe unten stehende Kommentare, @ Joey weist darauf hin, dass es sich nicht um eine brechende Änderung handelt, da es sich um ein kontextabhängiges Schlüsselwort handelt.
Ja, es ist überflüssig. Es gibt keine Umstände, wenn es etwas anderes tut, da die Reihenfolge implizit aufsteigend ist.
Ich schätze, es liefert Vollständigkeit, aber es ist tatsächlich eine Schande, ein Stichwort in die Sprache einzuführen, die so ... ohnmächtig ist.
Auf der anderen Seite allerdings:
a descending, b ascending, c descending, d ascending
etc Beispiel (siehe Kommentare), dass order by a, order by b
sich tatsächlich sehr von order by a, b
unterscheidet:
druckt:
%Vor%Beachten Sie, dass die mittleren zwei umgekehrt sind. Dies liegt an dem Unterschied zwischen:
%Vor%in der ersten Schleife und
%Vor%in der zweiten.
Da LINQ versucht, eine stabile Sortierung zu gewährleisten (dh wenn Übereinstimmungen vorhanden sind, werden die Daten in der ursprünglichen Reihenfolge beibehalten), führt %%_Code% die erste Sortierung (auf X) durch resorts die Daten, nur Blick auf die ursprüngliche (sortiert nach X) Reihenfolge, wenn die Ys übereinstimmen. Oder mit anderen Worten: Sie dreht sie von links nach rechts.
Tags und Links c# linq sql-order-by keyword