代码之家  ›  专栏  ›  技术社区  ›  E Rolnicki

LINQ、迭代器、选择和投影

  •  4
  • E Rolnicki  · 技术社区  · 16 年前

    我想做的是在维护迭代器的同时使用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"}....}
    
    1 回复  |  直到 16 年前
        1
  •  13
  •   Christian C. Salvadó    16 年前

    您可以这样做:

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

    位置将以0开始索引的形式递增,请检查 Select Method 超载。