09Defining a variable inside a Linq query let keyword

suggest change

In 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.

View Demo

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:


LINQ Queries:
* Except
* Any
* JOINS
* Zip
* 09Defining a variable inside a Linq query let keyword
* All
* Basics
* Where
* Sum
* Concat
* Union

Table Of Contents
17 Regex
19 Arrays
21 Enum
22 Tuples
24 GUID
27 Looping
36 Casting
46 Methods
64 LINQ Queries
88 Events
92 Structs
104 Indexer
106 Stream
107 Timers
109 Threading
127 Caching
135 Pointers
147 C# Script