如何在数组中使用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);
}
答
我假设你所说的“单元号”是指数组中当前项的索引。
如果是这样,答案是肯定的。
对于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
感谢Craig的快速响应。鲍勃。 – 2009-11-12 15:18:36