带投影的 Linq groupby 查询

标签 linq grouping

我正在尝试按客户 ID 对订单进行分组,然后将(由客户)返回的订单投影到一个列表中。试图弄清楚我将如何做到这一点?

 List<OrderGroup> set = OrderRepository.GetAllOrders
     .GroupBy(x => x.CustomerId).Select(result => new OrderGroup
         {
             Orders = ???? //should be all orders from one customer.
         }).ToList();

最佳答案

result IGrouping<TKey, T> ,它本身就是一个 IEnumerable<T> ,所以你可以这样做:

List<OrderGroup> set = OrderRepository.GetAllOrders
                      .GroupBy(x => x.CustomerId)
                      .Select(result => new OrderGroup
                      {
                          Orders = result.ToList()
                      }).ToList();

(请注意,这假设 Orders 可从 List<Order> 分配。)

关于带投影的 Linq groupby 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045320/

相关文章:

c# - 选择同一列上的多个位置

c# - 在 IEnumerable<dynamic> 上使用 LINQ 时出现编译器错误,但如果先将其转换为 IEnumerable<dynamic> 则不会

python - 根据单个值对元素进行分组

c# - 将人分成每组最具多样性的组的算法

ruby-on-rails - 按子属性对 Activerecord 查询进行分组

Excel vba - 在空白之间分组行

java - 如何在Java中按特定字段对某些对象进行分组?

c# - 使用 LINQ 从列表中获取具有特定属性最大值的对象

c# - 如何在 where 和 select 语句中的 ef 查询中使用子字符串

LINQ 查询失败,变量 ormlite 可为空