List (Of MyClass) sortieren

03/11/2008 - 11:29 von Frank Bach | Report spam
Hallo NG,

Ich habe eine List (Of MyClass)

Dim MyList = new List (Of MyClass)
...

Class MyClass
_Datum
usw.

Property Datum
...
End Property

End class

Jetzt will ich diese Liste nach dem Datum sortieren können (MyList.Sort)
Laut Hilfe muss ich da eine Icomparable-Schnittstelle implementieren, aber
ich blicke nicht durch!!!


Danke!

Frank
 

Lesen sie die antworten

#1 Armin Zingler
03/11/2008 - 12:00 | Warnen spam
"Frank Bach" schrieb
Hallo NG,

Ich habe eine List (Of MyClass)

Dim MyList = new List (Of MyClass)
...

Class MyClass
_Datum
usw.

Property Datum
...
End Property

End class

Jetzt will ich diese Liste nach dem Datum sortieren können
(MyList.Sort) Laut Hilfe muss ich da eine Icomparable-Schnittstelle
implementieren, aber ich blicke nicht durch!!!




IComparable würde ich nur implementieren, wenn die Instanzen ihrem Charakter
gemàß sinnvoll nach _einem_ Kriterium sortierbar sind, d.h. hat die Klsse
neben Datum noch einen Namen oder eine Nummer, was wàre das Kriterium?

Ansonsten: (ungetestet)

MyList.Sort( _
New Comparison(Of C1)( _
Function(o1 As C1, o2 As C1) _
o1.Datum.CompareTo(o2.Datum) _
) _
)

Oder, falls diese Art der Sortierung hàufiger vorkommt, sollte ein Comparer
geschrieben werden:

Class C1ComparerByDate
Implements IComparer(Of C1)

Public Function Compare(ByVal x As C1, ByVal y As C1) As Integer _
Implements System.Collections.Generic.IComparer(Of C1).Compare

Return x.Datum.CompareTo(y)

End Function
End Class


Aufruf:
MyList.Sort(New C1ComparerByDate)



Armin

Ähnliche fragen