ThenByが.Netでどのように機能するかを理解したいと思います。(私はそれを使用する方法を知っています、私はマイクロソフトがそれをどのように実装したかを理解していません!)
ドキュメントによると、string_list.OrderBy(Function (x) x.length).ThenBy(Function (x) x)
文字列のリストを長さ順に出力し、次にアルファベット順に出力する必要があります。どうすればうまくいくでしょうか?!?最初の並べ替えは長さによるものです。2番目の並べ替えでは、最初の並べ替えを元に戻す必要があります。
このコードを想定します:
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
これが私が使用せずに最後の行を実装しようとしているところです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
ここでいくつかの魔法が起こっています...e.GetPreviousKeySelector()関数はありますか?実際、IOrderedEnumerableを返す関数を作成することすらできません。