在 Linq 查询中定义变量(let 关键字)
要在 linq 表达式中定义变量,可以使用 let 关键字。这通常是为了存储中间子查询的结果,例如:
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));
}
输出:
这些数字的平均值是 4.5。
查询结果包括数字 3 和 9 的平方。
查询结果包括数字 4 和 16 的平方。
查询结果包括数字 5 和 25 的平方。
查询结果包括数字 6 和 36 的平方。
查询结果包括数字 7 和 49 的平方。
查询结果包括数字 8,方形为 64.
查询结果包括数字 9,方形为 81。