怎么回事儿?C#错误:集合已修改;枚举操作可能无法执行。

本文介绍了一种在C#中遍历DataTable并尝试删除特定行时遇到的问题——“集合已修改;枚举操作可能无法执行”。文章解释了错误产生的原因,并指出在使用foreach循环遍历集合时不应直接修改集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本意是遍历表的行,当行中“主键”列为“”时,将该行从表中删除。执行时就出现了“集合已修改;枚举操作可能无法执行。”的c#错误提示。c#错误代码如下:

DataTable dt = new DataTable();

dt = GetTest(tableName);// GetTest方法用于返回一个DataTable类型的结果集

foreach (DataRow dr in dt.Rows)//执行到该行出现错误提示:集合已修改;枚举操作可能无法执行

{

      if (dr["主键"].ToString() == "")

      { dt.Rows.Remove(dr);}

}

以查阅MSDN这个c#出错的原因是:

foreach语句用于循环遍历集合以获取所需信息,但不能更改正在遍历的集合内容。

可以用foreach遍历dt.Rows这个行集合,但不能在遍历dt.Rows集合时同时更改dt.Rows集合的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值