Jim,
Define a PeopleComparer class that implements the IComparer interface. The
PeopleComparer object would know which property you want to sort on and act
accordingly.
When you call Array.Sort, you would use the overloaded version that accepts
an IComparer.
For an example see:
http://msdn.microsoft.com/library/de...SortTopic3.asp
I would define the PeopleComparer to accept the property name as a parameter
to the constructor then have a select case in the compare.
Something like:
Public Class PeopleComparer
Implements IComparer
Private Readonly m_field As String
Public Sub New()
MyClass.New("Name")
End Sub
Public Sub New(ByVal field As String)
m_field = field
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As
Integer _
Implements IComparer.Compare
Dim xo As People = DirectCast(x, People)
Dim yo As People = DirectCast(y, People)
Select Case m_field
Case "Sex"
Return xo.Sex.CompareTo(yo.Sex)
Case "Age"
Return xo.Age.CompareTo(yo.Age)
Case "Name"
Return xo.Name.CompareTo(yo.Name)
End Select
End Function
End Class
Array.Sort(MyPeopleArray, New PeopleComparer("Age"))
Hope this helps
Jay
"its me" <at**@house.com> wrote in message
news:4s*****************@fe02.atl2.webusenet.com.. .
Let's say I have a class of people...
Public Class People
Public Sex as String
Public Age as int
Public Name as string
end class
And I declare an array of this class...
Dim MyPeopleArray(3) as People
Then I fill my arry with 3 people...
MyPeopleArray(0).Sex = "Female"
MyPeopleArray(0).Age = 32
MyPeopleArray(0).Name = "Marsha Marsha Marsha"
MyPeopleArray(1).Sex = "Male"
MyPeopleArray(1).Age = 31
MyPeopleArray(1).Name = "John"
MyPeopleArray(2).Sex = "Can't decide"
MyPeopleArray(2).Age = "23"
MyPeopleArray(2).Name = "Don't lable me"
How would I resort my the MyPeopleArray to have the people in Age order,
name order or sex order?
Thanks!
Jim