Mat*_*els 3 .net linq ienumerable
我最近意识到你不应该对IEnumerable的实现做任何假设(例如,当你在foreach循环期间对IEnumerable中的一个对象进行更改时,你不能假设循环(或甚至在每次迭代之后)可以在IEnumerable中找到更改的对象.
因此,在重新检查了我对IEnumerable的假设之后,我得出的结论是,事实上你唯一可以确定的是它允许你遍历集合的所有元素,其中集合(不是ICollection本身)可以做任何事.
我认为我无法做出的另一个假设是底层集合的顺序是特定的.从理论上讲,每次循环时,你都可以按照不同的顺序获取物品.
现在回到我原来的问题,考虑到上面的问题,First()并且Last()每次都可以返回不同的项目(理论上看看IEnumerable是什么)?
Exra信息: 当然通常这样会很好,因为IEnumerable是由订购的东西实现的.但是,如果IEnumerable调用Web服务来获取其元素,该怎么办呢?
背景信息:
我正在考虑这个因为我想为foreach循环中的第一个和最后一个元素做一些特定的事情.所以我查了一下if(currentElement == Enumerable.Last())
| 归档时间: |
|
| 查看次数: |
6641 次 |
| 最近记录: |