如果linq到DataTable,如何获取查询结果?

时间:2012-07-03 16:54:10

标签: linq c#-4.0

任何人都可以告诉,如何将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

由于 普拉迪普

1 个答案:

答案 0 :(得分:1)

如果您只想为每个ID-Group选择第一个人:

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