Ответы:
Перекрестное соединение - это просто декартово произведение двух множеств. Для этого нет явного оператора соединения.
var combo = from p в людях от c в машинах выбрать новый { p.Name, c.Make, c.Model, c.Colour };
people.SelectMany(p => cars, (p, c) => new { ... })
Основываясь на ответе Стива, самым простым выражением было бы следующее:
var combo = from Person in people
from Car in cars
select new {Person, Car};
from p in people from c in cars
в лямбда-нотации?