Почему область видимости переменных Lambda существует вне LINQ Query?

Я прочитал этот вопрос (Какова область действия лямбда-переменной в C#?)

Но речь идет об области действия лямбда-переменной внутри LINQ Query.

Теперь к моему вопросу.

Допустим, у меня есть очень простой запрос LINQ.

var Foo = FoobBar.Select(x => x);
var x = somefunction();

Компилятор говорит: Локальная переменная 'x' не может быть объявлена ​​в этой области, потому что это придаст другое значение 'x', которая уже используется в 'дочерней' области для обозначения чего-то еще.

Почему это так? Не должна ли переменная Lambda перестать существовать после завершения запроса LINQ?

РЕДАКТИРОВАТЬ: Прочитав ответы, я пришел к выводу, что это внешняя x(возвращенная из функции), область действия которой распространяется внутри запроса LINQ.

5
задан Community 23 May 2017 в 12:17
поделиться