2012-07-03 68 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