Что такое подзапрос, если речь идёт о лямбда-выражениях и LINQ в C#? Препод говорил что-то о подзапросах на паре, тема была LINQ лямбды C#, но я толком не понял ничего. Простыми словами расскажите пожалуйста что это такое
Подзапрос - это запрос, который содержится в каком-то лямбда-выражении в другом запросе.
Вот пример подзапроса, который упорядочивает фамилии музыкантов по алфавиту:
string[] musicians = { "Bob Marley", "Freddy Mercury", "David Gilmour" };
IEnumerable auery = musicians.OrderBy ( x => x.Split(),Last() );
Подзапросы используются потому что в них можно подставить любое допустимое выражение C# в первую часть лямбда-выражения. Подзапрос - это всего лишь ещё одно выражение C#. По этому для подзапросов работают те же правила что и для лямбда-выражений. Область видимости подзапроса ограничивается областью видимосте содержащим его выражением, при этом он может ссылаться на внешний аргумент лямбда-выражения.
Подзапросы, наряду с лямбда-выражениями, LINQ предикатами и делегатами с анонимными методами рассматриваются на курсе C# Essential, так что если интересно, то можете просмотреть на досуге.