Dear All,

I have two arrays (array1 and array2)with double type data. I want to sort array1 to ascending order, and array2 with corresponding to the array1 indexes. Is this possible? Example below,

Array1(0) = 2.30
Array1(1) = 4.20
Array1(2) = 1.90
Array1(3) = 0.20
Array1(4) = 0.88

Array2(0) = 0.19
Array2(1) = 0.002
Array2(2) = 0.20
Array2(3) = 0.45
Array2(4) = 1.8

Resulted arrays should be as,

Result1(0) = 4.20
Result1(1) = 2.30
Result1(2) = 1.90
Result1(3) = 0.88
Result1(4) = 0.20

Result2(0) = 0.002
Result2(1) = 0.19
Result2(2) = 0.20
Result2(3) = 1.8
Result2(4) = 0.45

Can anybody help me to get these results arrays? I use VB.NET 2010.
Thanks

dear scudzilla,
Yes, I use array.sort method to sort array1.
Array.sort(array1)

Edited 4 Years Ago by zhouy

Try this:

Imports System
Imports System.Linq

Module Module1

   Sub Main()
      Dim Array1(4) As Double
      Array1(0) = 2.3
      Array1(1) = 4.2
      Array1(2) = 1.9
      Array1(3) = 0.2
      Array1(4) = 0.88

      Dim Array2(4) As Double
      Array2(0) = 0.19
      Array2(1) = 0.002
      Array2(2) = 0.2
      Array2(3) = 0.45
      Array2(4) = 1.8

      Dim Array3 = Array1.OrderByDescending(Function(dbl) dbl)
      Array3.ToList().ForEach(Sub(dbl) Console.WriteLine(dbl))

      Console.WriteLine("---")

      Dim Array4 =
      (
         From a1 In Array1
         Let idxA1 = Array1.ToList().IndexOf(a1)
         Select New With {.element = a1, .index = idxA1}
      ).OrderByDescending(Function(kvp) kvp.element) _
         .Select(Function(kvp) Array2(kvp.index)).ToArray()

      Array4.ToList().ForEach(Sub(dbl) Console.WriteLine(dbl))
   End Sub

End Module
This question has already been answered. Start a new discussion instead.