反復一般リストを削除する必要がある操作を実行して実行する場合、一般的なトラップを回避するために適切な反復モードを選択することが重要です。たとえば、コレクションは列挙プロセス中に修正されるため、サイクルでの
の使用は異常を引き起こします。
foreach
安定した溶液.Remove(element)
cyclic逆繰り返しリストを使用することをお勧めします。この方法により、要素を削除するときのセット内の現在の位置が正確になることが保証されます。
例:for
for (int i = safePendingList.Count - 1; i >= 0; i--) { // 处理元素 // safependingList.RemoveAt(i); }
もう1つの選択肢は、
メソッドを使用して、削除する要素をスクリーニングするように述べていることです。この方法はプロセスを簡素化し、サイクル内の要素を手動で削除するニーズを減らします。var list = new List<int>(Enumerable.Range(1, 10)); for (int i = list.Count - 1; i >= 0; i--) { if (list[i] > 5) list.RemoveAt(i); } list.ForEach(i => Console.WriteLine(i));
簡略化されたデモンストレーション:
RemoveAll
これらのテクノロジーは、コードが効率的かつ異常がないことを確認するために、反復的な汎用リストの場合、要素を安全に削除する安全で信頼できるメカニズムを提供します。
以上が繰り返しながら、一般的なリストから要素を安全かつ効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。