Повторное использование LINQ-запроса и отложенное выполнение

У меня сложилось впечатление, что я могу создать запрос LINQ, а затем использовать его повторно при изменении соответствующих параметров. Но кажется, что вы не можете изменить исходную коллекцию. Может ли кто-нибудь дать мне хорошее объяснение того, почему, поскольку я явно неправильно понял нечто фундаментальное.

Вот пример кода.

var source = Enumerable.Range(1, 10);
var value = source.Where(x => x > 5);
var first = value.ToArray();

source = Enumerable.Range(11, 20);
var second = value.ToArray();

Я ожидал, что сначала будет 6,7,8,9,10, а потом 11-20.

Ответы на вопрос(3)

Ваш ответ на вопрос