我想了解ThenBy是如何工作的.NET。 (我知道如何使用它,我只是不明白微软是如何实现的呢!)
根据该文件, 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的功能!