Я хочу понять, как ThenBy работает в .Net. (Я знаю, как его использовать, я просто не понимаю, как Microsoft внедрила его!)
Согласно документации, string_list.OrderBy(Function (x) x.length).ThenBy(Function (x) x)
должен вывести список строк, упорядоченных по длине, а затем в алфавитном порядке. Как это могло бы работать?!? Первый вид по длине. Второй сорт должен отменить сортировку первого!
Предположим, что этот код:
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!