1. ホーム

コレクションが変更されたため、列挙操作が実行できない場合があります。

2022-02-25 15:54:47

プログラムを実行したところ、この例外に遭遇し、よく調べてみると、Foreachを使用していることが原因であることがわかりました。構文的には、CollectionにRemoveやAddを使用していることが原因でしたので、foreachメソッドをforメソッドに変更すればいいだけです。

間違っていた元のコードは以下の通りです。

1
foreach
 (DataRow dr 
in
 dt.Rows)


2 {

3 if  (dr[ 1 ToString().Equals( " 3 " ))

4     {

5         dt.Rows.Remove(dr);

6     }

7 }

これに変えればOKです。

for
(
int
 i
=
dt.Rows.Count
-
1
;i
>=
0
;i
--
)


{

    DataRow dr 
=  dt.Rows[i];

if (dr[ 1 ].ToString( " 3 " ).Equals())

    {

        dt.Rows.Remove(dr);

    }

}

取得元:https://www.cnblogs.com/koon/archive/2010/03/31/1701493.html