linq groupjoin用法
GroupJoin 是 LINQ(Language Integrated Query)中的一个操作符,它允许你将两个序列进行连接,并生成一个包含两个序列中相关元素的序列。GroupJoin 在处理一对多关系时非常有用。
下面是 GroupJoin 的基本用法示例:
csharp
var orders = from order in ordersList 
            join customer in customersList on order.CustomerID equals customer.CustomerID 
            select new { OrderID = order.OrderID, CustomerName = customer.CustomerName }; 
  foreach (var result in orders) 
    Console.WriteLine("OrderID: {0}, Customer Name: {1}", result.OrderID, result.CustomerName); 
}
在这个例子中,我们有两个列表:ordersList 和 customersList。我们通过 GroupJoin 将这两个列表连接在一起,连接的条件是订单的 CustomerID 与客户的 CustomerID 相等。最后,我们选择包含订单 ID 和客户名称的匿名类型输出。
GroupJoin 也可以与 into 关键字一起使用,以创建一个分组后的子查询。
csharp
var groupedOrders = from order in ordersList 
                  join customer in customersList on order.CustomerID equals customer.CustomerID 
                  group order by customer into customerOrders 
                  select new { CustomerName = customerOrders.Key, Orders = customerOrders }; 
  foreach (var result in groupedOrders) 
join的四种用法
    Console.WriteLine("Customer Name: {0}", result.CustomerName); 
    foreach (var order in result.Orders) 
    { 
        Console.WriteLine("  OrderID: {0}", order.OrderID); 
    } 
}
在这个例子中,我们使用 into 关键字将订单按客户进行分组。然后我们选择包含客户名称和
该客户的所有订单的匿名类型输出。