1

我有一个List(of String()). 我编写了一个自定义比较器 ( implements IComparer(of string)) 来进行字母数字排序。

有没有办法使用给定的索引对 List 进行排序以确定String()要排序的位置?换句话说,一次我可能排序Index = 0,另一次排序Index = 3。列表中所有的长度String()是相同的。

作为参考,这个问题类似于Sort List<String[]>除了我使用的是 VB.net 并且这个问题是硬连线到Index=0.


从 OP 的评论中编辑:

我从非自定义比较器开始简单,但出现错误:表达式不产生值。不知道我做错了什么。这是代码:

Public Shared Function SortListOfStringArray(ByVal ListOfStringArray As List(Of String()), ByVal SortByIndex As Integer) As List(Of String())
    Return ListOfStringArray.Sort(Function(x, y) x(SortByIndex).CompareTo(y(SortByIndex)))
End Function 
4

1 回答 1

3

要对数组中特定索引上的字符串数组列表进行排序,请使用:

Dim index As Integer = 1
list.Sort(Function(x, y) x(index).CompareTo(y(index)))

使用自定义比较器:

Dim index As Integer = 1
list.Sort(Function(x, y) comparer.Compare(x(index), y(index)))
于 2012-05-30T16:46:34.750 回答