Objekt aus Liste löschen, wenn andere Liste es nicht enthält

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Niko Ortner.

    Objekt aus Liste löschen, wenn andere Liste es nicht enthält

    So schnell bin ich wieder da;

    Ich steh echt auf dem Schlauch, keine Ahnung wie ich das angehen soll:

    Ich habe eine Klasse Variable:

    C#-Quellcode

    1. public string Bezeichner { get; set; }
    2. public string Beschreibung { get; set; }


    Ich habe in einer anderen Klasse Folgendes gegeben:

    C#-Quellcode

    1. string[] gesucht;
    2. List<Variable> gegeben;


    Ich möchte aus der List gegeben alle Objekte löschen, deren Bezeichner nicht in gesucht enthalten ist.

    Enthält gesucht zum Beispiel a, b, c, und gegeben ein Objekt Variable mit Bezeichner d, soll das Variablenobjekt aus der Liste gelöscht werden.

    Da ich ja während einer foreach-Schleife nichts daraus löschen kann, brauch ich Rat, wie ich das angehen soll.
    Die zu löschenden Objekte irgendwie zwischenzuspeichern ist mir schon eingefallen, aber wie soll ich sie dann löschen, wenn ich es nicht während einer foreach-Schleife machen kann?

    Grüße
    Grüße
    Felix

    Kenaex schrieb:

    Da ich ja während einer foreach-Schleife nichts daraus löschen kann, brauch ich Rat, wie ich das angehen soll.
    Per For-Schleife von hinten nach vorne.
    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!
    Da es eine List<T> ist, kannst Du auch folgendes verwenden:

    VB.NET-Quellcode

    1. gegeben.RemoveAll(i => !gesucht.Contains(i));
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils