LINQ,迭代器,选择和投影

E R*_*cki 4 c# linq

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

实质上

Class A
{
  int Position;
  string Name;
}
Run Code Online (Sandbox Code Playgroud)

如果我有一个字符串列表,我想将它们List<A>投影到但是在投影中填充了位置...

List<string> names; //filled with strings
Run Code Online (Sandbox Code Playgroud)

就像是

List<A> foo = (from s in names select s).ToList();
Run Code Online (Sandbox Code Playgroud)

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

这可能吗?

{{Position:0,Name: "name1"},{Position:1, Name: "name2"}, {Position:2, Name: "name3"}....}
Run Code Online (Sandbox Code Playgroud)

CMS*_*CMS 13

你可以这样做:

    var listOfStrings = new List<string> {"name1", "name2", "name3", "name4"};
    var foo = listOfStrings.Select((value, position) => new {position, value}).ToList();
Run Code Online (Sandbox Code Playgroud)

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