Enumerable.Range()迭代索引

时间:2014-11-13 06:31:15

标签: c# linq

是否可以在以下LINQ代码中为I分配迭代索引:

var list = Enumerable.Range(0, n).Select(x => new { i = iteration index }).ToList();

2 个答案:

答案 0 :(得分:3)

从0到 n ,迭代索引将等同于样本中的范围变量x

var list = Enumerable.Range(0, n).Select(x => new { i = x }).ToList();

如果你使用的是另一个范围(特别是一个不以0开头的范围),你可以使用引入索引的Select重载作为第二个输入。

var list = Enumerable.Range(10, n).Select((x, index) => new { i = index }).ToList();

答案 1 :(得分:2)

我认为你正在寻找: -

var list = Enumerable.Range(0, n).Select((v, i) => new { Value = v, Index = i });

您可以按照自己想要的方式操纵i

例如: -

var list = Enumerable.Range(0, 10).Select((v, i) => new { Value = v, Index = i % 2 });

foreach (var x in list)
{
      Console.WriteLine("Value: {0} \t Index : {1}", x.Value, x.Index);
}