コレクションに整数のリストを作成し、foreachを使用してループしますが、ループ中にリストにデータを挿入する必要がある場合はどうすればいいですか?私は得ていますコレクションをループする際にコレクションを変更するときにInvalidOperationExceptionが発生する
未処理の例外:System.InvalidOperationException:コレクションは 変更された列挙操作が実行されないことがあります。
これは以下のサンプルコードです。私はAsReadonly()が変更された状態より前のコレクションを返すと考えました。それはここでは当てはまりません。
ints = new List<int>(30);
ints.AddRange(Enumerable.Range(1, 10));
int y = 11;
foreach(int x in ints.AsReadOnly())
{
ints.Add(y++);
Console.WriteLine(x);
}
:この特定のケースで、あなただけの要素を追加しているので、あなたがのために()ループを使用してコピーを避けることができますか?上に切ったものは何をするのですか?あなたの本当のユースケースが何であるかを理解せずに、あなたに代替アプローチを提案することさえできないので、私は尋ねています。 –
[C#で反復処理している間に列挙可能なコレクションからアイテムを変更または削除する方法](http://stackoverflow.com/questions/308466/how-to-modify-or-delete-items-from-an) -enumerable-collection-while-iterating-throu) – adrianbanks