Manipulação de cálculo temporário no Linq

Ao resolver uma questão da entrevista

Questão Um número de seis dígitos precisa ser encontrado de tal maneira quando é multiplicado por um número inteiro entre 2 e 9 que fornece o número de seis dígitos original quando seus dígitos são invertidos.

Exemplo:

Suponha que eu multiplique 219978 * 4 e recebo 879912, quando o reverso 879912 receberei 219978 de volta.

Eu resolvi 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);

    }

 }
}

A tarefa original era resolvê-lo usando o linq. Eu tenho um pouco de confusão na manipulação de cálculos temporários, por exemplo

quando eu uso

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

Qual é a maneira de lidar com cálculos temporários como var num = l.ToString (), etc em linq.It me confundiu muito para terminá-lo em Linq.Help é apreciado.

questionAnswers(2)

yourAnswerToTheQuestion