代码之家  ›  专栏  ›  技术社区  ›  Cristian Diaconescu

Linq将外部列表索引添加到内部元素

  •  0
  • Cristian Diaconescu  · 技术社区  · 14 年前

    { { 'a', 'b', 'c'}, {'d', 'e', 'f'} }
    

    如何将这些项目投影到表单的平面列表中:

    { {'a', 0}, {'b', 0}, {'c', 0}, {'d', 1}, {'e', 1}, {'f', 1}}
    

    其中每个结果元素的第二个字段是内部列表的索引?

    2 回复  |  直到 14 年前
        1
  •  2
  •   dtb    14 年前
    var result = outer.SelectMany((inner, index) => inner.Select(item => Tuple.Create(item, index)));
    
        2
  •  0
  •   Cristian Diaconescu    14 年前

    我想出来了。。。

    var input = new []{ new []{'a', 'b', 'c'}, new []{'d', 'e', 'f'}};
    
    var rez = input
        .Select((list, listIdx) => new {list, listIdx})
        .SelectMany(listAndIdx => listAndIdx.list
            .Select(elem => new {elem, listAndIdx.listIdx}));