LINQ,迭代器,选择和投影

我想做的是在保持迭代器的同时使用LINQ的优雅……

实质上

Class A { int Position; string Name; } 

如果我有一个字符串列表,我想将它们投影到List但是在投影中填充了Position …

 List names; //filled with strings 

就像是

 List foo = (from s in names select s).ToList(); 

但它也迭代并填充位置..

这可能吗?

 {{Position:0,Name: "name1"},{Position:1, Name: "name2"}, {Position:2, Name: "name3"}....} 

你可以这样做:

  var listOfStrings = new List {"name1", "name2", "name3", "name4"}; var foo = listOfStrings.Select((value, position) => new {position, value}).ToList(); 

位置将作为0开始索引递增,检查选择方法过载。