LINQ group by ID - 按订单区分

时间:2016-11-11 10:10:56

标签: linq

我在名为“Assignment”的通用列表中有数据,如原始表中所示。想要按ID进行分组,只显示基于美国 - 英国 - 印度订单的一条记录。

结果应该从第一个表转换为第二个表,如附图所示。

enter image description here

2 个答案:

答案 0 :(得分:1)

试试这个: SQL就像语法一样。

from a in Assignments
group a by a.Id into gr select gr.FirstOrDefault()

Lambda表达式:

Assignments
   .GroupBy (a => a.Id)
   .Select (gr => gr.FirstOrDefault ())

答案 1 :(得分:0)

试试这个,它的作品。我希望这就是你所需要的。

var query01 = context.FirstTable
            .GroupBy(p => p.ID
            ,(ky, el) => new { ky.Value , FirstCountry = el.Select(p => Country).Take(1)});

var Result = query01
           .Join(context.FirstTable
           , ul => new
            {
           Id = ul.Value
           ,Country = ul.FirstCountry.FirstOrDefault()
           }
           , fl => new 
           {
           Id = (int)fl.ID
           , Country = fl.Country
           }
          , (ul, fl) => new { fl }).ToList();