一、应用场景
在查询表达式中,存储子表达式的结果有时很有用,这样可以在随后的子句中使用。 可以使用 let 关键字完成这一工作,该关键字可以创建一个新的范围变量,并且用您提供的表达式的结果初始化该变量。 一旦用值初始化了该范围变量,它就不能用于存储其他值。 但如果该范围变量存储的是可查询的类型,则可以对其进行查询。
二、示例代码
using
System;
using
System.Linq;
namespace
UseLet
{
class
Program
{
static
void
Main()
{
string
[] strings = {
"A penny saved is a penny earned."
,
"The early bird catches the worm."
,
"The pen is mightier than the sword."
};
var earlyBirdQuery = from sentence
in
strings
let words = sentence.Split(
' '
)
from word
in
words
let w = word.ToLower()
where w[0] ==
'a'
|| w[0] ==
'e'
|| w[0] ==
'i'
|| w[0] ==
'o'
|| w[0] ==
'u'
select word;
foreach
(var v
in
earlyBirdQuery)
{
Console.WriteLine(
""{0}" starts with a vowel"
, v);
}
Console.WriteLine(
"Press any key to exit"
);
Console.ReadLine();
}
}
}
从上面效果可以看出子句let的作用。如果不使用 let,则必须在 where 子句的每个谓词中调用 ToLower,并且let可以保存from字句中的变量来使用。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。