Try:
IEnumerable<Order> smallOrders = customers
.SelectMany(c => c.Orders)
.Where(o => o.Total < 500);
Or:
IEnumerable<Order> smallOrders = from c in customers
from o in c.Orders
where o.Total < 500
select o;
Edit: For your altered return type:
IEnumerable<(string customerId, int orderId, decimal total)> smallOrders
= customers
.SelectMany(c => c.Orders.Select(o => (c.CustomerId, o.OrderId, o.Total)))
.Where(o => o.Total < 500);
or:
IEnumerable<(string customerId, int orderId, decimal total)> smallOrders
= from c in customers
from o in c.Orders
where o.Total < 500
select (c.CustomerId, o.OrderId, o.Total);