Reutilización de consultas LINQ y ejecución diferida.

Tenía la impresión de que podía crear una consulta LINQ y luego reutilizarla mientras cambiaba los parámetros involucrados. Pero parece que no puedes cambiar la colección fuente. Alguien me puede dar una buena explicación de por qué, ya que claramente he malinterpretado algo fundamental.

Aquí hay un código de ejemplo.

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

Esperaba que primero fuera 6,7,8,9,10 y que el segundo fuera de 11 a 20.

Respuestas a la pregunta(3)

Su respuesta a la pregunta