2015-12-14 64 views
2

我加入了兩個數據表&嘗試使用序列號獲取陣列中的結果。 DTLINQ生成序列號

ID A B C 
1 ab t j 
2 cd h k 
3 ds f g 

NDT

CID  E F G 
1  g y gg 
2  ff hg vcb 
3  df vb b 

代碼

var query = from r0w1 in dt.AsEnumerable() 
      join r0w2 in ndt.AsEnumerable() 
      on r0w1.Field<string>("ID") equals r0w2.Field<string>("CID") 
      select r0w2.ItemArray.Skip(1).Concat(r0w1.ItemArray).ToArray(); 

我想在這裏的是,LINQ也應該生成序列號。所以,輸出應該是這樣的。

SNO  ID A B C  E F G 
1  1 ab t j  g y gg 
2  2 cd h k  ff hg vcb 
3  3 ds f g  df vb b 
4... 

我該如何獲得序列號?

回答

10

您在這裏做一些奇怪的事情,但無論如何,這應該工作:

int serialNumber = 1; 

var query = from r0w1 in dt.AsEnumerable() 
      join r0w2 in ndt.AsEnumerable() 
      on r0w1.Field<string>("ID") equals r0w2.Field<string>("CID") 
      select new string [] { serialNumber++.ToString() } 
        .Concat(r0w2.ItemArray.Skip(1)) 
        .Concat(r0w1.ItemArray).ToArray();