SortableBindingList via Code sortieren?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    SortableBindingList via Code sortieren?

    Huhu, ich hatte hier ein Beispiel einer SortableBindingList gefunden.

    Das Sortieren via DataGridView klappt auch wunderbar, allerdings ist mir nicht so ganz klar, wie ich die Liste via Code sortieren kann.

    Kann da jemand helfen?

    Ne Methode wie Sort() finde ich leider nicht (oder ähnliches) und via LINQ hab ich auch mal geschaut, aber da bin ich totaler Anfänger:

    VB.NET-Quellcode

    1. Dim lr = From en In Names Where en.count >= 80
    2. Me.DataGridView1.DataSource = New SortableBindingList(Of PopName)(lr.ToList)


    Das ist das Beispiel aus dem Code.
    Sieht so aus als ob man mit dem LINQ alle PopNamen bekommt, dessen Count >= 80 sind.
    "en" wird scheinbar als Variable benutzt um ein Objekt zum Arbeiten zu haben und in lr landet das Ergebnis.

    Sehe ich das korrekt?

    EDIT: Okay, Sortieren via LINQ scheint bei der obigen Abfrage durch Hinzufügen von Order By Ascending/Descending zu funktionieren
    EDIT 2: Hab den Ansatz jetzt geändert, da ich die Sortier-Funktionalität nur beim einlesen benötige, habe ich es jetzt wie folgt gelöst:

    Schritt 1: temporäre Liste einlesen
    Schritt 2: 2 temporäre Liste via LINQ sortiert bekommen
    Schritt 3: Der Hauptliste die Einträge der 2 temp. Liste hinzufügen
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Rootbob91“ ()

    Dein Verständnis der Linq-Query geht glaub ganz daneben. Die erste Query filtert vmtl. auf Namen, die mehr als 80 Zeichen haben. Allerdings unsicher, denn es handelt sich ja nicht um Strings, sondern um PopNames, was immer das sein mag.

    Aber mal Frage: Was kann die SortableBindingList, was nicht jede stinknormale List oder BindingList auch kann?
    Deine 3 Schritte kannst du etwas vereinfachen:
    1) Items in eine List(Of T) einlesen
    2) Hauptliste dazu-schmeissen (List.AddRange)
    3) List.Sort aufrufen
    4) Als DataSource zuweisen.

    Dann ist auch komplett sortiert, bei deim Verfahren werden ja 2 sortierte Bereiche aneinandergefügt, wies mir aussieht

    Linq brauchst du jdfs. nicht