# 09Defining a variable inside a Linq query let keyword

suggest changeIn order to define a variable inside a linq expression, you can use the **let** keyword. This is usually done in order to store the results of intermediate sub-queries, for example:

int[] numbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var aboveAverages = from number in numbers let average = numbers.Average() let nSquared = Math.Pow(number,2) where nSquared > average select number; Console.WriteLine("The average of the numbers is {0}.", numbers.Average()); foreach (int n in aboveAverages) { Console.WriteLine("Query result includes number {0} with square of {1}.", n, Math.Pow(n,2)); }

**Output:**

The average of the numbers is 4.5. Query result includes number 3 with square of 9. Query result includes number 4 with square of 16. Query result includes number 5 with square of 25. Query result includes number 6 with square of 36. Query result includes number 7 with square of 49. Query result includes number 8 with square of 64. Query result includes number 9 with square of 81.

Found a mistake? Have a question or improvement idea?
Let me know.

Table Of Contents