using System.Collections.Generic;
public static void Main()
var customers = new List<Customer>()
new Customer { Name="Raju", Orders = new [] {
new Order { Id = 3443, Total = 14.56M },
new Order { Id = 8642, Total = 20.87M }
new Customer { Name="Roxana", Orders = new [] {
new Order { Id = 9831, Total = 54.00M },
new Order { Id = 10456, Total = 15.70M },
new Order { Id = 12654, Total = 95.47M }
new Customer { Name="Ali", Orders = new [] {
new Order { Id = 523, Total = 5.87M },
var projection = customers
.SelectMany(c => c.Orders)
.Where(o => o.Total > 20M)
foreach (var orderId in projection)
Console.WriteLine(orderId);
public static decimal SumOfOrderTotals(IEnumerable<Customer> customers)
public static Customer CustomerWithGreatestOrderTotal(IEnumerable<Customer> customers)
public static IEnumerable<Order> ThreeOrdersWithGreatestTotalsDescending(IEnumerable<Customer> customers)
public int Id { get; set; }
public decimal Total { get; set; }
public string Name { get; set; }
public IEnumerable<Order> Orders { get; set; }