In sostanza, vorrei rimuovere un elemento da un elenco mentre si è all'interno del ciclo foreach. So che questo è possibile quando si utilizza un ciclo for, ma per altri scopi, vorrei sapere se questo è realizzabile utilizzando un ciclo foreach.Modifica raccolta quando si utilizza un ciclo foreach in C#
in Python possiamo raggiungere questo obiettivo nel modo seguente:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in a:
print i
if i == 1:
a.pop(1)
Questo ha pronunciato la seguente uscita
>>>1
3
4
5
6
7
8
9
Ma quando si fa qualcosa di simile in C#, ottengo un'InvalidOperationException, mi chiedevo se c'era un modo per aggirare questo, senza semplicemente utilizzare un ciclo for.
Il codice in C# che ho usato quando l'eccezione è stato gettato:
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);
}
}
Grazie in anticipo
Mi stavo chiedendo principalmente se mi fosse sfuggito qualcosa da qualche parte con l'istanza di foreach, ma se non è possibile, almeno è ora confermato! Grazie per la risposta – ThePower