【C#】foreachでリストの要素を削除したい

foreachループでリストから要素を削除することはできません。これは、foreachループが反復処理中にリストの状態を変更することができないためです。

解決策

代わりに、forループを使用してリストの要素を削除することができます。具体的には、リストを逆順に処理して、要素を削除することができます。以下は、例です。

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

for (int i = numbers.Count - 1; i >= 0; i--)
{
    if (numbers[i] == 3)
    {
        numbers.RemoveAt(i);
    }
}

この例では、List<int>型のnumbersリストから値が3の要素を削除しています。forループを使用して、リストを逆順に処理しているため、要素を削除しても反復処理が影響を受けることはありません。

C#,学習

Posted by hidepon