1

私は持っていList(of String())ます。implements IComparer(of string)英数字の並べ替えを行うカスタム比較子 ( ) を作成しました。

指定されたインデックスを使用してリストをソートし、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 に答える