Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1573
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 41
  • 用 户 组: 普通用户
  • 注册时间: 2021-08-19 17:37
文章分类

全部博文(3)

文章存档

2022年(2)

2021年(1)

我的朋友
最近访客

分类: 网络与安全

2022-04-09 17:21:56

某些类的某些属性,由于实现了IQueryable或IEnumerable, 能够更方便、更优美地使用foreach查询。 但是在一些特殊情况下,foreach不一定能够查询到准确的值,例如以下情况:

建造一个HtmlTable (runat=server),至少有一行数据,内容任意,然后再建造一个添加行数据的方法,在每次添加完数据之后,立即使用 foreach(var i in obj.Rows) 查询,这时候就会出现“集合已经更改”的错误。

如果我们换成for(var i = 0; i< obj.Rows.Count;i++),就可以避免错误发生了。 因为for是实时查询,而foreach是调用IQueryable或IEnumerable中的yield return 的后期查询,在实现机制上有所不同。

当然for需要编写更多的代码,在外观上也没有foreach的可读性高,这时候也需要我们根据具体情况具体使用。
阅读(224) | 评论(0) | 转发(0) |
0

上一篇:新人来也

下一篇:简明 Vim 练级攻略

给主人留下些什么吧!~~