Manejo del cálculo temporal en Linq.

Al resolver una pregunta de entrevista

Pregunta Es necesario encontrar un número de seis dígitos de tal manera cuando se multiplica por un número entero entre 2 y 9 para obtener el número original de seis dígitos cuando sus dígitos se invierten.

Ejemplo:

Supongamos que multiplico 219978 * 4 obtengo 879912, cuando reverso 879912 obtendré 219978 de vuelta.

Lo resolví usando

for (long l = 100000; l < 999999; l++)
{
 var num = l.ToString();

for (int i = 3; i < 9; i++)
{
  var mul = l * i;
  string str = mul.ToString();
  char[] splitDigits = str.ToCharArray();
  string reversedDigit =
  new  string(splitDigits.Reverse().ToArray());

  if (reversedDigit.CompareTo(num) == 0)
    {
      Console.WriteLine("{0} * {1}= {2},
       when multiplied {3} ", num, i, mul,reversedDigit);

    }

 }
}

La tarea original era resolverlo usando linq. Tengo un poco de confusión en el manejo de los cálculos de temperatura, por ejemplo

cuando uso

   var = from l in Enumerable.Range(100000,999999)
         from i in Enumerable.Range(3,9)

¿Cuál es la forma de manejar cálculos temporales como var num = l.ToString (), etc. en linq? Me confundió mucho terminarla en Linq. Se agradece la ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta