StuffandBlah
StuffandBlah

Reputation: 55

Using data from linq query

I have a very simple linq query that gets data from two datatables (orderHeader & OrderDetails) and joins them together. What I would like to do is take the order items for each order and pass them to a method for processing.

Here is the query:

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") 
};

What is the best way to iterate the results for each order?

Thanks

Upvotes: 0

Views: 111

Answers (1)

Fabian
Fabian

Reputation: 13691

This result set contains multiple orders, this would require a nested 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);
   }
}

Upvotes: 1

Related Questions