Reutilização de consulta LINQ e execução diferida

Fiquei com a impressão de que poderia criar uma consulta LINQ e, em seguida, reutilizá-la enquanto alterava os parâmetros envolvidos. Mas parece que você não pode mudar a coleção de fontes. Alguém pode me dar uma boa explicação do porquê, como eu compreendi claramente algo fundamental.

Aqui está algum código de exemplo.

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();

Eu esperava primeiro 6,7,8,9,10 e o segundo, 11 a 20.

questionAnswers(3)

yourAnswerToTheQuestion