Avatar ·

Wie entferne ich Elemente aus einer List<T> mit LINQ in C#?

Hallo zusammen! Ich bin neu in C# und bin auf eine Situation gestoßen, in der ich mehrere Elemente aus einer List entfernen muss, die eine bestimmte Bedingung erfüllen. Derzeit verwende ich eine normale for-Schleife mit Entfernung per Index, aber das funktioniert nicht richtig – nach dem Entfernen verschieben sich die Indizes und ich überspringe Elemente.\n\nHier ist ein Beispiel: Ich habe eine Liste von Zahlen und möchte alle geraden Zahlen entfernen.\n\n```csharp\nList numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };\n\nfor (int i = 0; i < numbers.Count; i++)\n{\n if (numbers[i] % 2 == 0)\n {\n numbers.RemoveAt(i);\n }\n}\n```\n\nNach diesem Code bleiben in der Liste die Elemente: 1, 3, 5, 7, 9 – scheinbar korrekt. Aber wenn ich mehr Elemente hinzufüge oder die Bedingung komplexer mache, treten Probleme auf. Wenn ich zum Beispiel das Element an Index 1 (Wert 2) entferne,