で繰り返されると、リスト要素を安全に削除します 反復中にリストを変更すると、「コレクションが変更された」という頭痛など、列挙操作は実行されない場合があります」という異常な問題を引き起こす可能性があります。ただし、一部のテクノロジーは、反復中に効果的に要素を除去できます。
1つの方法は、forループリバースイテレーションリストを使用することです。これにより、コレクションを破壊するインデックスの位置を防ぐことができます。
別の選択肢は、Removeallメソッドを述語で使用して各要素を確認することです。
<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--) { // 处理元素 // safePendingList.RemoveAt(i); }</code>
例
次の整数リストを検討してください:
<code class="language-csharp">safePendingList.RemoveAll(item => item.Value == someValue);</code>
出力:
取り外し後の
var list = new List<int>(Enumerable.Range(1, 10));
出力:
<code class="language-csharp">Console.WriteLine("移除前:"); list.ForEach(i => Console.WriteLine(i));</code>
以上がC#を反復しながらリストから要素を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。