Einträge einer ArrayList sortieren

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Don_Batisto.

    Einträge einer ArrayList sortieren

    Ich habe folgende Strucktur,

    VB.NET-Quellcode

    1. Public Structure Personen
    2. dim Vorname as string
    3. dim Nachname as string
    4. End Structure
    welche ich ich ein paar mal einer Arraylist

    VB.NET-Quellcode

    1. dim arrPerso as new Arraylist
    2. dim Person() as Personen
    3. for i = 0 to Ubound(Person)
    4. arrPerso.Add(Person(i))
    5. next
    hinzufüge.

    Nun könnte die ArrayList zB. so aussehen:
    1) A
    Mustermann
    2) B
    Musterfrau
    3) C
    Mustermann

    (Immer ein Vor und ein Nachname)

    Nun möchte ich aber, dass die ArrayList so aussieht:
    1) A
    Mustermann
    2) C
    Mustermann
    3) B
    Musterfrau

    Also nach dem Nachnamen sortiert.


    Anfangs dachte ich, dies geht normal mit .Sort() - lief aber dennoch schief - er weiß ja auch nicht wonach er sortieren soll...
    dann hab ich es mit nem IComparer versucht : - gefunden im Inet (Link zur Seite hab ich nicht mehr), aber halt auf eigene Bedingungen angepasst -
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class clsClassSort
    2. Implements IComparer
    3. ''' <summary>
    4. '''
    5. ''' </summary>
    6. ''' <param name="x">Property1 der Klasse</param>
    7. ''' <param name="y">Property2 der Klasse</param>
    8. ''' <returns></returns>
    9. ''' <remarks></remarks>
    10. Public Function compare(ByVal x As Object, ByVal y As Object) As Integer _
    11. Implements IComparer.Compare
    12. Dim MeineKlasse1, MeineKlasse2 As Personen
    13. MeineKlasse1 = CType(x, Personen)
    14. MeineKlasse2 = CType(y, Personen)
    15. Dim intReturn As Integer
    16. intReturn = MeineKlasse1.Nachname.CompareTo(MeineKlasse2.Nachname)
    17. Return intReturn
    18. End Function
    19. End Class


    Leider rennt er da auch gegen die Wand : Meldung: "Fehler beim Vergleichen von zwei Elementen im Array."

    Langsam bin ich ziemlich entnervt, da man mMn. kaum was zum Sortieren einer Arraylist im Inet findet, was auch nur ansatzweise hilft...
    könnte damit zusammenhängen, dass ArrayList Crap ist, und nicht mehr verwendet wern sollte :D

    gugge Suchen und Sortieren , aber hier im Forum gabs auch neulich einen Thread darüber.

    Übrigens, deine Benamung ist verkehrt rum: Die Structure sollte Person heißen, denn sie repräsentiert keine Personen, sondern nur eine Person.

    Und deine Person-ArrayList sollte Personen heißen, denn da sind ja mehrere drin. Aber nimm nu List(Of Person) statt ArrayList.

    Und informiere dich über die List(Of T)-Klasse - die ist immens wichtig: dieses Buch lesen (hingegen das Galileio-Openbook ist Mist)