Linq Query,循环通过datatable,加入并获取索引

时间:2014-06-20 12:42:38

标签: c# linq

我有一个linq查询,其中我有两个数据表,我正在连接并使用.foreachforeach中的操作数据循环。当我在foreach中循环时,如何获取行的行索引?

我知道如何在没有连接的情况下完成它,简单的方法就是在linq语句之前放置一个int变量并在foreach中增加。但是想知道我是否可以添加{{1}在此查询中

.Select(Row,index) => new {row,index})

1 个答案:

答案 0 :(得分:0)

你可以尝试这个:

 Datatable1.AsEnumerable()
           .Join(Datatable2.AsEnumerable(),
                 dt1row => dt1row.Field<string>("name"),
                 dt2row => dt2row.Field<string>("name")) ,
                 (dt1row, dt2row) => new { dt1row, dt2row })
           .Select((row, index)=> new 
                  {
                      Index=index, 
                      Dt1row = row.dt1row, 
                      Dt2row = row.dt2row
                  }).ToList()
                    .ForEach(o =>
                    {
                        //check if value for fields is the same in 
                    });