Ich möchte verstehen, wie ThenBy in .Net funktioniert. (Ich weiß, wie man es benutzt, ich verstehe nur nicht, wie Microsoft es implementiert hat!)
In der Dokumentation heißt es dazu, string_list.OrderBy(Function (x) x.length).ThenBy(Function (x) x)
sollte eine nach Länge geordnete Liste von Zeichenketten ausgeben und dann alphabetisch. Wie soll das funktionieren?!? Die erste Sortierung erfolgt nach Länge. Die zweite Sortierung sollte die Sortierung der ersten aufheben!
Nehmen Sie diesen Code an:
Dim sorted_by_length As IOrderedEnumerable(Of String)
sorted_by_length = string_list.OrderBy(Function (x) x.length)
sorted_by_length = sorted_by_length.ThenBy(Function
Hier versuche ich, die letzte Zeile zu implementieren, ohne ThenBy
:
Dim sorted_by_length As IOrderedEnumerable(Of String)
sorted_by_length = string_list.OrderBy(Function (x) x.length)
'my implementation of OrderBy:
Dim e as IEnumerator(Of String) = sorted_by_length.GetEnumerator
Do While e.MoveNext
'I have no idea what to write here!
Loop
Hier ist etwas Magie im Spiel... Gibt es eine Funktion e.GetPreviousKeySelector()? In der Tat kann ich nicht einmal eine Funktion schreiben, die IOrderedEnumerable zurückgibt!