2012-07-03 99 views
0

任何人都可以告訴,如何獲得LINQ查詢的結果包含group by到DataTable。如何獲得查詢結果如果LINQ到DataTable?

var query= from d in dtable.AsEnumerable() 
      group d by d["Id"]; 

WId FirstName LastName Age 
1 Jass  we  23 
1 Mady  wer  54 
3 Servy  gr  22 
4 Jan  fr  11 

Expected 
    WId FirstName LastName Age 
    1 Jass  we  23 
    3 Servy  gr  22 
    4 Jan  fr  11 

感謝 普拉迪普

+2

你想達到什麼目的?你對什麼結果感興趣? – MarcinJuraszek

+0

我還有其他4個列以外的Id。我想將所有查詢結果讀取到DataTable。 – Pradeep

+0

您是否嘗試過[MSDN](http://msdn.microsoft.com/zh-cn/vstudio/bb738024)? –

回答

1

如果你只是想採取第一每人ID-組:

var distinctIdPersons = from p in dtable.AsEnumerable() 
         group p by p.Field<int>("WId") into IdGroups 
         select IdGroups.First(); 

或方法的語法:

distinctIdPersons = dtable.AsEnumerable().GroupBy(r => r.Field<int>("WId")) 
             .Select(g => g.First()); 

如果你想要查看結果(用於測試目的),可以使用string.Join

var output = string.Join(", ", distinctIdPersons.Select(r => 
    r.Field<string>("FirstName") + " " + r.Field<string>("LastName"))); 
Console.WriteLine(output); // Jass we, Servy gr, Jan fr