代码之家  ›  专栏  ›  技术社区  ›  scope_creep

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

  •  1
  • scope_creep  · 技术社区  · 16 年前

    我仍然坚持在XSD生成的类中使用数组,因为我的XML模式对于 xsd2code 创建了基于泛型的生成类。

    在使用时,他们是否可以告诉数组的单元号? foreach 穿过它?在Linq有什么方法可以做到吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Craig Stuntz    16 年前

    您当然可以在Linq中执行此操作:

    foreach (var item in Items.Select((elem, index) => new { Item = elem, Index = index }))
    {
        DoStuff(item.Item, item.Index);
    }
    
        2
  •  0
  •   SLaks    16 年前

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

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

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

    例如:

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

    在Linq中,可以调用 Select Where 以2参数lambda为例,如下所示:

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