【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
ループを使用して、リストを逆順に処理しているため、要素を削除しても反復処理が影響を受けることはありません。
ディスカッション
コメント一覧
まだ、コメントがありません