Резюме для программиста
Хм, хотя в stackoverflow написано, что вроде так правильно...
var result = (from p in person from c in college select new { p.Name, p.Age, c.Course, c.Lecture });
Зачем там взяли в скобки запрос, не знаю. Работает и без скобок. Может, человек выдрал не совсем правильно кусок код из более сложного запроса. Обычно в скобки берут, когда хотят к SQL-синтаксису потом дописать метод-синтакс, чтобы преобразовать результат запроса в список типа ToList или просто чтобы он выполнился (они же там все "ленивые"). Поэтому я предпочитаю метод-синтакс - меньше скобок и больше читаемость, на мой взгляд. Хотя, вроде, есть в метод-синтаксе пара штук, которые удобнее делать в SQL-синтаксе, но я не помню какие. Тут можно почитать.
А вообще, я сомневаюсь, что вы получаете существенный удар по производительности на таких маленьких коллекциях. Если всё написано правильно, навряд ли разница в производительности у LINQ и for отличается в разы. Да даже на десятки процентов. Если вы пишете сверхвылизанную по производительности систему, то можно заменить всё на стандартные циклы вместо линк. Не знаю, что там немцы выиграют по железу и производительности, но могут проиграть по поддержке такого кода - т.е. выигрыш уйдёт в дополнительные человекочасы программистов.
Знаете, когда народ толкает везде джаваскрипт, как-то двулично предъявлять претензии к линку. Некоторые вообще C# отрицают и даже местами С++ - всё должно быть в машинных кодах. Тут главное сильно не увлекаться - "не сотвори себе кумира".