如何在数组中使用foreach时获取数组单元格的位置?

问题描述:

我仍然坚持在XSD生成的类中使用数组,因为我的XML模式对于创建基于泛型的生成类的xsd2code太复杂。如何在数组中使用foreach时获取数组单元格的位置?

他们有什么办法在使用foreach时告诉数组的单元格号? LINQ中有没有办法做到这一点?

你当然可以这样做它在LINQ:

foreach (var item in Items.Select((elem, index) => new { Item = elem, Index = index })) 
{ 
    DoStuff(item.Item, item.Index); 
} 
+0

感谢Craig的快速响应。鲍勃。 – 2009-11-12 15:18:36

我假设你所说的“单元号”是指数组中当前项的索引。

如果是这样,答案是肯定的。

对于for循环,您可以声明一个整型变量并在每次迭代中增加它以跟踪索引。

例如:

int index = 0; 
foreach(var thing in things) { 
    //... 

    index++; 
} 

在LINQ,你可以调用的Select称取2参数Lambda表达式,像这样的超载和Where

array.Select((elem, index) => whatever); 
+0

感谢SLak的快速响应。第一种方法是常见的方式,我正在寻找summat neater。鲍勃。 – 2009-11-12 15:19:18