We're a community of 1077K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,076,151 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

Sorting a Multidimensional Array

Hi, Is there at all a way to sort (numerically) a multidimensional array?

I have an array that is as follows

`dim points(23,1) as String`

The first dimension of the array has the players names in, the second dimension of it has their cumulative points, so I want to sort the array by points and maintaing the correlation of players name to points (if that makes sense)

thanks in advance!

4
Contributors
5
Replies
2 Days
Discussion Span
1 Year Ago
Last Updated
7
Views
Quinncunx
Newbie Poster
19 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

You could try a different method and define a structure.....

Dim stud(24) As Students
Dim tmpStud As Students


Structure Students
    Dim StudentName As String
    Dim CumulativeScores As Double
End Structure




    For i = 0 To stud.Count - 2
        If stud(i).CumulativeScores > stud(i + 1).CumulativeScores Then
            tmpStud = stud(i + 1)
            stud(i + 1) = stud(i)
            stud(i) = tmpStud
        End If
    Next
Begginnerdev
Practically a Posting Shark
864 posts since Apr 2010
Reputation Points: 184
Solved Threads: 142
Skill Endorsements: 8

Or you could use a SortedList and not have to do the sort yourself.

Dim mylist As New SortedList

mylist.Add("John", 23)
mylist.Add("Jim", 14)
mylist.Add("Fred", 92)

For Each key As String In mylist.Keys
    Debug.WriteLine(key & ": " & mylist(key))
Next
Reverend Jim
Carpe per diem
Moderator
3,600 posts since Aug 2010
Reputation Points: 561
Solved Threads: 447
Skill Endorsements: 32

Thanks for the input guys, I assume it would be possible to populate the sorted list from a multidimensional array?

EDIT:

Thanks Jim, once again you have provided a useful way of solving a problem.

Also thanks BegginnerDev for your input

Quinncunx
Newbie Poster
19 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

One final comment on SortedLists. If the item you want to sort is not a primitive data type (String, Integer, etc) then you have to specify a user-written function that compares two elements and returns a value of -1, 0, or 1. This custum function is then used by SortedList to do the sort. You would need to do this if (as BeginnerDev suggested) you created a structure to hold your data.

If you have your answer then please mark this thread as solved.

Reverend Jim
Carpe per diem
Moderator
3,600 posts since Aug 2010
Reputation Points: 561
Solved Threads: 447
Skill Endorsements: 32

Hi
If Sortedlist doesn't work for you you can also try a DataTable. A DataTable has a DefaultView property, which is a DataView for the table and a DataView has a Sort property which allows you to sort your data by any column in either direction e.g. "PlayerPoints Desc"

G_Waddell
Practically a Master Poster
619 posts since Nov 2009
Reputation Points: 107
Solved Threads: 93
Skill Endorsements: 5

This article has been dead for over three months: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
View similar articles that have also been tagged:
 
© 2013 DaniWeb® LLC
Page rendered in 0.0670 seconds using 2.64MB