我有两个阵列; indexArray() as String
和valueArray() as Decimal
。
indexArray实际上是一个数字列表,采用字符串格式。我想对indexArray进行排序(同时保持valueArray中的相应值相同),方法是按十进制对应的数字顺序递增。
以下是我尝试的内容:
Array.Sort(Of String, Decimal)(indexArray, valueArray, Nothing)
我已经查看了IComparer的对象,但是我无法很好地掌握如何让一个人做我需要的东西,但我确信这可能是答案;或者甚至更简单的东西,我不会想到足够的东西!
答案 0 :(得分:3)
不确定是否有其他方法,所以如果有人有更好的想法,请等待,但您可以使用自定义类列表来存储您的值,然后请求Linq OrderBy方法对您的列表进行排序值
Sub Main
Dim indexArray() as String = {"1.1", "12.2", "10.3", "2.4", "2.1"}
Dim valueArray() as Decimal = {1.1, 12.2, 10.3, 2.4, 2.1}
Dim listOfValues = new List(Of MyValues)
for x = 0 to indexArray.Length - 1
listOfValues.Add(new MyValues() With {.stringValue = indexArray(x), .decimalValue = valueArray(x)})
Next
Dim result = listOfValues.OrderBy(Function(x) x.decimalValue)
for each mv in result
Console.WriteLine(mv.stringValue)
Next
End Sub
Class MyValues
Public stringValue as String
Public decimalValue as Decimal
End Class