I would like to have joins supported, to join multiple collections. For instance:
var matches = (from driver in driverCollection.AsQueryable() join car in carCollection.AsQueryable() on driver.CarId equals car.Id where driver.Name == "Tim Kellogg" select new { DriverName = driver.Name, CarNumber = car.Number }).ToArray();
I would assume that the initial naive algorithm would be
1. Get all drivers that match the WHERE clause
2. Get all cars that satisfy the ON clause (and the WHERE, if it applies)
3. Do the SELECT clause