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