发布日期:2018-03-26
如何获取当前foreach循环的索引?+ 查看更多
如何获取当前foreach循环的索引?
+ 查看更多
发布日期:2018-02-23 13:53
分类:C#
浏览次数:209
有没有一些罕见的语言构造,我没有遇到过(像我最近在Stack Overflow中学到的一些)在C#中获取代表foreach循环当前迭代的值?
例如,我目前根据情况做这样的事情:
例如,我目前根据情况做这样的事情:
int i=0; foreach (Object o in collection) { // ... i++; }回答:
该foreach是遍历实现集合IEnumerable。它通过调用GetEnumerator集合来实现,这将返回一个Enumerator。
这个枚举器有一个方法和属性:
MoveNext()
Current
Current返回枚举器当前所在的对象,MoveNext更新Current到下一个对象。
显然,一个索引的概念相对于枚举的概念是不一样的,这个是做不到的。
因此,大多数集合都可以使用索引器和for循环构造遍历。在这种情况下,与使用局部变量跟踪索引相比较我更喜欢使用for循环。