如何对包含多列的表中的数据进行分组

本文关键字:数据 包含多 | 更新日期: 2023-09-27 18:32:31

我正在尝试以这种方式使用多个列对数据进行分组:

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();

这样的处理也可以工作,对于每个对象,我只获取地址属性。

还有其他方法可以做到这一点吗?

如何对包含多列的表中的数据进行分组

可以使用匿名类型作为组合键:

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

尝试

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