Хорошо, вот ближайший синтаксис выражения запроса:
var query5 = from c in CustomerList.Select((cust, index) => new {cust, index})
where c.cust.Country == "USA" && c.index > 70
select new { c.cust.CustomerID, c.cust.CompanyName, c.index };
По сути, один бит, который вы не можете сделать в синтаксисе выражения запроса, - это перегрузка «select with index». Там просто нет никакого синтаксиса, который переводит на это. (То же самое относится и к нескольким другим операциям - синтаксис LINQ в VB в этом отношении более богат, хотя лично я доволен тем, как это делает C #; он избегает добавления слишком большого количества контекстных ключевых слов.)
(Как говорит Мехрдад, это не «скомпилированный» запрос. Фактически код будет скомпилирован с точно таким же IL.)