LINQ、迭代器、选择和投影

10

我希望在保持迭代器的同时使用LINQ的优雅。

基本上

Class A
{
  int Position;
  string Name;
}

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

List<string> names; //filled with strings

something like

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

但它也可以迭代并填充Position吗?这是可能的吗?
{{Position:0,Name: "name1"},{Position:1, Name: "name2"}, {Position:2, Name: "name3"}....}
1个回答

20

你可以这样做:

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

位置将作为从0开始的索引递增,查看Select Method重载。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接