Bestimmten Eintrag einer List(of T) an deren Anfang verschieben mit LINQ

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

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von roepke.

    Bestimmten Eintrag einer List(of T) an deren Anfang verschieben mit LINQ

    Hallo zusammen,

    ich habe eine List(of Controls) und möchte diese dahingehend sortieren, dass ein Control mit bestimmten Namen an erster Stelle steht.

    Bsp. vor dem Ordnen
    Control C
    Control B
    Control A

    nach dem Ordnen
    Control B
    Control C
    Control A

    Bisher mache ich das so, dass ich den richtigen Eintrag suche, kopiere, mit RemoveAt() entferne und mit Insert() an der ersten Position einfüge.
    Gibt es eine LINQ Entsprechung?

    LG
    Würdest Du ein für den Compiler objektives Sortierkriterium haben, dann wär es leichter. Aber so kann ich nur sagen, dass Du statt mit Insert eben mit Prepend arbeiten kannst:

    VB.NET-Quellcode

    1. Dim DasZuVerschiebendeControl = WieAuchImmerDuZuDemKommst
    2. DeineListe.Remove(DasZuVerschiebendeControl)
    3. DeineListe.Prepend(DasZuVerschiebendeControl)


    Welchen Zweck erfüllt die Sortierung von Controls?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich speichere die Controleigenschaften in einer Datei.
    Dazu erstelle ich zunächst eine Liste aller Controls die gespeichert werden sollen.
    Ein bestimmtes Control (ComboBox) muss als erstes in dieser Liste/Datei stehen, da beim Laden der Datei, abhängig von diesem Eintrag ein UserControl geladen wird.
    Die nachfolgenden Controls in der Datei beziehen sich dann auf das UserControl und sind darin zu finden.

    roepke schrieb:

    ich habe eine List(of Controls)
    Wie oft muss diese Sortierung durchgeführt werden?
    Schreibe den Code gleich so, dass dieses Control als erstes der Liste hinzugefügt wird, da musst Du nix sortieren.
    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!