Ich habe eine Liste in eine Foreach-Schleife übergeben, die 0 oder mehr Elemente aus der Liste entfernt. Aufgrund von Bedingungen ist es möglich, dass die Liste vollständig geleert wird, was einen Null-Referenzfehler verursacht. Was ist der beste Weg, um mit dieser Art von Situation umzugehen?Objekt in Foreach-Schleife geleert
foreach (Item i in items)
{
if (i.property == condition)
{
items.Remove(i);
}
}
Sie nicht Reihenfolge ändern können, die Sie aufzählt. Wie haben Sie es geschafft, die Artikelliste vollständig zu leeren? –
Ich kann mir keine Sprache vorstellen, die ich kenne, die richtig funktioniert, wenn Sie versuchen, Elemente aus etwas zu entfernen, über das Sie iterieren. Es gibt jedoch viele Möglichkeiten, dies zu tun, von 'items.RemoveAll' bis hin zum Klonen der Liste, zum Iterieren über eine und zum Entfernen von der anderen, zum Speichern der Indizes und zum Entfernen der Elemente nach der Schleife. – Andrew