Fondamentalement, je souhaite supprimer un élément d'une liste à l'intérieur de la boucle foreach. Je sais que c'est possible en utilisant une boucle for, mais à d'autres fins, je voudrais savoir si cela est réalisable en utilisant une boucle foreach.Modification de la collection lors de l'utilisation d'une boucle foreach dans C#
En python, nous pouvons y parvenir en procédant comme suit:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in a:
print i
if i == 1:
a.pop(1)
Cela donne le résultat suivant
>>>1
3
4
5
6
7
8
9
Mais lorsque vous faites quelque chose de similaire en C#, je reçois un InvalidOperationException, je me demandais S'il y avait un moyen de contourner cela, sans simplement utiliser une boucle for.
Le code C# que j'utilisé lorsque l'exception a été levée:
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);
}
}
Merci à l'avance
Je me demandais surtout si j'avais manqué quelque chose quelque part avec l'instance foreach, mais si ce n'est pas réalisable, au moins c'est maintenant confirmé! Merci d'avoir répondu – ThePower