「列挙子のインスタンス化後にコレクションが変更されました」というエラーを回避するには、コレクション:列挙子がインスタンス化された後にコレクションが変更された - Request.ServerVariables
IEnumerator en = Request.ServerVariables.Keys.GetEnumerator();
en.MoveNext();
MSDN exampleを見ると、彼らはその後、GetEnumeratorメソッドまたはMoveNextメソッドを呼び出すことなく、そのコレクションを反復処理、コレクションにサーバー変数を設定します。
つの質問:
- なぜ我々はGetEnumeratorメソッドとMoveNextメソッドを呼び出す必要がありますか?
- ASP.NETとC#4.0を使用した方が良いアプローチはどれですか?
これは、次のような他のサイトで言及されているエラーの原因です。http://geekswithblogs.net/congsuco/archive/2006/01/26/67123.aspx – Josh
ivowibloが提案したコードに類似したコードを更新しました。それは、キーの配列を変数にコピーし、次にキーを調べることです。また、ループの開始時と同じように値を保持したい場合は、Request.ServerVariables.CopyToを使用して、キー/値のペアをループの前に別の配列にコピーすることもできます。 –