我有一个非常简单的linq查询,它从两个数据表(orderHeader和OrderDetails)获取数据并将它们连接在一起。我想做的是获取每个订单的订单商品并将其传递给方法进行处理。
以下是查询:
var results = from orderHeader in dtOrderHeader.AsEnumerable()
join orderDetails in dtOrderDetails.AsEnumerable() on
orderHeader.Field<int>("order_ref") equals
orderDetails.Field<int>("order_id")
select new {
orderID = orderHeader.Field<int>("order_ref"),
orderItem = orderDetails.Field<string>("product_details")
};
为每个订单迭代结果的最佳方法是什么?
由于
答案 0 :(得分:1)
此结果集包含多个订单,这需要嵌套的foreach
foreach (var order in results.Select(r => r.orderID).Distinct()) {
Console.WriteLine("Order: " + order);
Console.WriteLine("Items:");
foreach (var product in results.Where(r => r.orderItem == order)) {
Console.WriteLine(product.orderItem);
}
}