基本的に、 foreach ループ内でリストからアイテムを削除したいと思います。forループを使用するとこれが可能であることはわかっていますが、他の目的のために、foreachループを使用してこれが達成可能かどうかを知りたいです。
Python では、次のようにしてこれを実現できます。
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in a:
print i
if i == 1:
a.pop(1)
これにより、次の出力が得られます
>>>1
3
4
5
6
7
8
9
しかし、c# で似たようなことをすると、InvalidOperationException が発生します。単純に for ループを使用せずに、これを回避する方法があるかどうか疑問に思っていました。
例外がスローされたときに使用した c# のコード:
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);
}
}
前もって感謝します