Zasadniczo chciałbym usunąć element z listy podczas pętli foreach. Wiem, że jest to możliwe, gdy używamy pętli for, ale do innych celów, chciałbym wiedzieć, czy jest to możliwe przy użyciu pętli foreach.Modyfikowanie kolekcji przy użyciu pętli foreach w C#
W Pythonie możemy to osiągnąć w następujący sposób:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in a:
print i
if i == 1:
a.pop(1)
To daje następujący wynik
>>>1
3
4
5
6
7
8
9
Ale kiedy robi coś podobnego w C#, otrzymuję InvalidOperationException, zastanawiałem się, jeśli był sposób obejścia tego, , nie używając po prostu pętli for.
Kod w C#, który kiedyś, gdy wyjątek:
static void Main(string[] args)
{
List<string> MyList = new List<string>(new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9"});
foreach (string Item in MyList)
{
if (MyList.IndexOf(Item) == 0)
{
MyList.RemoveAt(1);
}
Console.WriteLine(Item);
}
}
góry dzięki
Głównie zastanawiałem się, czy coś przegapiłem gdzieś z instancją foreach, ale jeśli nie jest to możliwe, przynajmniej jest to teraz potwierdzone! Dziękuję za odpowiedź – ThePower