Angenommen, ich habe eine Person-Klasse mit den Eigenschaften Name, Age, Level.
Ich weiß, wie man mit
nach einer der Eigenschaften sortiert %Vor%Aber wie kann ich nach Name, Alter und Level sortieren?
Ein Äquivalent des SQL-Satzes: ORDER BY Name, Alter, Stufe
Danke
Anpassung Ihres aktuellen Codes:
%Vor%oder eine einfache linq-ish-Lösung:
%Vor%Ich würde IComparable auf Ihre Person-Klasse anwenden. In Ihrer benutzerdefinierten Vergleichsmethode können Sie die Logik für den Vergleich aller drei Eigenschaften festlegen und sicherstellen, dass die drei das richtige "Gewicht" haben (z. B. wenn zwei Instanzen von Person denselben Namen haben, sollten Sie als nächstes nach Alter oder Stufe sortieren) ).
Sie müssen CompareTo für die erste Eigenschaft aufrufen, nach der Sie sortieren möchten, den Wert erhalten, der zurückgegeben wird, und wenn es 0 ist, dann CompareTo für die nächste Eigenschaft aufrufen und bei jeder Rückgabe von 0 wiederholen die nächste Eigenschaft, bis Sie einen Wert ungleich Null erhalten (den Sie dann zurückgeben) oder Sie erreichen das Ende der Eigenschaften, nach denen Sie sortieren möchten.