我想要做的是在保持迭代器的同时使用LINQ的优雅......
基本上
Class A
{
int Position;
string Name;
}
如果我有一个字符串列表,我想将它们投射到List<A>
但是在投影中填充了位置......
List<string> names; //filled with strings
类似
List<A> foo = (from s in names select s).ToList();
但让它迭代并填充位置..
这可能吗?
{{Position:0,Name: "name1"},{Position:1, Name: "name2"}, {Position:2, Name: "name3"}....}
答案 0 :(得分:13)
你可以这样做:
var listOfStrings = new List<string> {"name1", "name2", "name3", "name4"};
var foo = listOfStrings.Select((value, position) => new {position, value}).ToList();
位置将作为0起始索引递增,检查Select Method过载。