ホームページ > バックエンド開発 > C++ > C#の「foreach」ループ内のリストを安全に変更するにはどうすればよいですか?

C#の「foreach」ループ内のリストを安全に変更するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-27 13:36:10
オリジナル
897 人が閲覧しました

How to Safely Modify Lists Inside a `foreach` Loop in C#?

C#:ベストプラクティスのループforeach内のリストの変更

c#の

ループ内でリストを直接変更すると、予期しない動作につながる可能性があります。 C#/。ネット4.0以降のバージョンは、特定の状況下でいくつかの変更を許可しますが(ポールジャクソンが指定したように)、これは一般的には推奨されません。 foreachループで使用されるコレクションの固有の不変性は、MSDNによって文書化されているように、予測不可能な副作用を防ぐように設計されています。 一時的なバッファーとしてforeachを使用するなどの古い方法は、効率が低く、エレガントではありません。

なぜIList

​​

で変更を避けないのか foreachループの内部ワーキングは、コレクションのコピー(またはイテレーター)を作成します。 反復中に元のコレクションを変更すると、ループが要素をスキップしたり、例外をスローしたりする可能性があります。

優先方法:

ループを使用foreach

を使用します

ソースコレクションの変更を必要とするシナリオの場合、ループはより良い制御と予測可能性を提供します。 このアプローチは、リストのインデックスを直接操作し、forに関連する問題を回避します。

同時コレクション:例外forループ内での変更を許可していますが、これは専門的なケースです。 この例外は、同時アクセスのために設計されたこれらの特定のコレクションタイプにのみ適用されることを理解することが重要です。 foreach

まとめ:限られた状況では技術的には可能ですが、ループ内のリストを変更することは一般に落胆します。 リストの変更に

ループを使用すると、コードの明確性、予測可能性、予期しないエラーの回避を確保するためのベストプラクティスのままです。

以上がC#の「foreach」ループ内のリストを安全に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート