如何在lambda中创建标识列



如何使表达式添加一个计数器(ID),即1,2,3,4等…? 我只想要一些唯一的键来标识数据

     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();

我不认为你可以在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();

最新更新