代码之家  ›  专栏  ›  技术社区  ›  punkouter

如何在lambda中创建标识列?

  •  1
  • punkouter  · 技术社区  · 13 年前

    如何使表达式添加1、2、3、4等计数器(ID)?我只想有一些unqiue密钥来识别数据

         var query = data.Select(x =>
                new DemoItemV1
                {
                    Id = x.Field<double>("ID"),
                    AreaId = x.Field<int>("1Area ID"),
                    CategoryTitle = x.Field<string>("2Table Title")
                }).ToList();
    
    1 回复  |  直到 13 年前
        1
  •  1
  •   p.s.w.g    13 年前

    我不认为纯粹在Linq-to-Sql或Linq-to-Entities查询中可以做到这一点。但是,由于您已经将其具体化为列表,因此您可以这样做:

    var query = data.Select(x =>
            new DemoItemV1
            {
                AreaId = x.Field<int>("1Area ID"),
                CategoryTitle = x.Field<string>("2Table Title")
            })
            .AsEnumerable()
            .Select((x, i) => { x.ID = i + 1; return x })
            .ToList();