for与foreach,在遍历属性时的差别,for能够更安全的获取数据

编程技术  /  houtizong 发布于 3年前   226
某些类的某些属性,由于实现了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的可读性高,这时候也需要我们根据具体情况具体使用。

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客