有没有办法可以确定我在foreach循环中的哪一行?

Ala*_*an2 5 .net c# foreach

我有这个代码:

foreach (var row in App.cardSetWithWordCounts)
{
   details.Children.Add(new SeparatorTemplate());
   // do some tasks for every row 
   // in this part of the loop ...
}
Run Code Online (Sandbox Code Playgroud)

我想不添加一个SeparatorTemplate但是我想在第一次运行时执行其他任务foreach.有没有人有关于我如何做到这一点的建议?

我想在第一次执行代码中的其余代码foreach而不是添加模板的行.

Pat*_*man 11

如果要跳过第一行,可以使用Skip:

foreach (var row in App.cardSetWithWordCounts.Skip(1))
Run Code Online (Sandbox Code Playgroud)

如果您想知道确切的行号,请使用Select重载:

foreach (var x in App.cardSetWithWordCounts.Select((r, i) => new { Row = r, Index = i })
{
    // use x.Row and x.Index
}
Run Code Online (Sandbox Code Playgroud)

  • Linq非常有用,不是吗.没有"IEnumerable"的生活就不一样了. (2认同)
  • 那么,你可以检查第一个循环的`x.Index == 0`,对吗?相应地执行您的代码. (2认同)