Sorting an array list containing objects?

R

Rob Meade

Dear all,

I have a class which contains an arraylist populated with other objects, for
example:

PrescriptionQueue - containing multiple instances of Prescription

I have the need on my web page to display this data which I have done,
however, now I would like to sort it based on a data item/direction selected
by the user from the web page.

I have separate data and display layers and was planning on doing my "sort"
in my display layer.

In order to do this I figured I would need to pull the Prescription objects
back out from my PrescriptionQueue, perhaps pop them into a DataTable/View
to make the sorting easier.

I then wondered whether it would be better to try and sort the
PrescriptionQueue itself.

Got a little lost after this point :blush:)

From what I've seen of the ArrayList.Sort you can do this quite easily:

ArrayList.Add("Red")
ArrayList.Add("Blue")
ArrayList.Add("Green")

ArrayList.Sort()

etc, but thats based on the value directly inside those elements of the
arraylist, is it possible to do something more like this:

For Each Prescription In PrsecriptionQueue

ArrayList.Add(Prescription)

Next

ArrayList.Sort(Prescription.PatientSurname)

I appreciate the above example is probably not syntactically correct, so
please excuse me, I am merely trying to give an example of what I would like
to achieve.

If anyone has any thoughts/suggestions as to doing this a better way I would
be most grateful - another idea I had was requesting the sort order when I
"get" my data in the first place.

Any help appreciated,

Regards

Rob
PS: Happy New Year!
 
M

Mantorok

Look at the static method Array.Sort, you will have to break up your array
into 2 - one for keys and one for the corresponding values.

It's not particularly trivial but you can write your own method to deal with
it.

Kev
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top