如何从具有多列的表中对数据进行分组

时间:2014-11-28 14:34:19

标签: c# oracle linq edmx

我正试图通过这种方式使用多列来对数据进行分组:

var groupedCustomers = listToProcess.GroupBy(cn => cn.CUST_NAME).Select(g => g.ToList()).ToList();

这样分组,我对我得到的东西感到满意,因为我可以循环遍历所有对象并获得所有属性。但是,因为我应该使用两个字段(cust_name和cust_address)对表数据进行分组,所以这就是我要做的事情:

var groupedCustomers = listToProcess.GroupBy(cn => cn.CUST_NAME, ca => ca.CUST_ADDRESS).Select(g => g.ToList()).ToList();

这样的处理对每个对象也有效,我只获取地址属性。

还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

您可以将匿名类型用作composite key

var groupedCustomers = listToProcess
       .GroupBy(cn => new { cn.CUST_NAME, cn.CUST_ADDRESS })
       .Select(g => g.ToList()).ToList();

答案 1 :(得分:1)

尝试

   var groupedCustomers = listToProcess
           .GroupBy(cn => new {CUST_NAME = cn.CUST_NAME, CUST_ADDRESS  = cn.CUST_ADDRESS })
           .Select(g => g.ToList()).ToList();