Vergleiche Liste an Objekten

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Vergleiche Liste an Objekten

    Hallo,

    ich habe in einer Liste viele Objekte eines bestimmten Typs gespeichert (durch XML-Serialisierung eingelesen). Wie kann ich jetzt eine neue sortierte Liste erstellen und anhand von Attributen des Objekts sortieren? (Ich möchte den XML-Node "Beginn" absteigend sortieren)

    Hat jemand ein Beispiel / Tutorial?

    Danke!
    @vb.net_New
    Schick doch mal den Code.

    Ich würde von meinem Bauchgefühl das verwenden:

    VB.NET-Quellcode

    1. Dim sorted = From pair In dictionary Order By pair.Value


    Edit:

    Danach kannst du noch ​sorted.Reverse() machen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „a.b_om“ ()

    Ich denke Dictionary-Reversed wird nicht klappen oder?

    Hier ist mein Code:

    VB.NET-Quellcode

    1. Private Sub doSth()
    2. Dim po As New RecordToolXML
    3. Dim t1 As New Teil
    4. t1.beginn = "1.2342" 'Besser wäre eigentlich ein Double, aber fachliche Festlegung ist eine Zahl
    5. Dim t2 As New Teil
    6. t2.beginn = "23.145"
    7. Dim serializer As New XmlSerializer(GetType(RecordToolXML))
    8. Dim writer As New StreamWriter(result)
    9. serializer.Serialize(writer, po)
    10. writer.Close()
    11. End Sub


    VB.NET-Quellcode

    1. Imports System.Xml.XmlNode
    2. Imports System.Xml.Serialization
    3. Imports System.Xml
    4. <XmlRoot("RecordToolXML")>
    5. Public Class RecordToolXML
    6. <XmlElement("textdatei")>
    7. Public Property SavedTextdatei As String
    8. <XmlElement("video")>
    9. Public Property SavedVideo As String
    10. <XmlElement("teil")>
    11. Public Property SavedTeil As List(Of Teil)
    12. End Class
    13. Public Class Teil
    14. '<XmlAttribute("id")>
    15. 'Public Property ID As Byte
    16. <XmlElement("ton")>
    17. Public Property Ton As String
    18. <XmlElement("text")>
    19. Public Property Text As String
    20. <XmlElement("beginn")>
    21. Public Property beginn As String
    22. <XmlElement("ende")>
    23. Public Property ende As String
    24. <XmlElement("video")>
    25. Public Property video As String
    26. End Class


    Korrektur der CodeTags, bitte in Zukunft selber dran denken ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @vb.net_New Schreibe Dir einen eigenen Sorter, der anhand des übergebenen Parameters Deine Daten sortiert.
    docs.microsoft.com/de-de/dotne…ort?view=netframework-4.8

    VB.NET-Quellcode

    1. MyList.Sort(New MySorter(attribut))
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!