企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# let 子句(C# 参考) 在查询表达式中,存储子表达式的结果有时很有用,这样可以在随后的子句中使用。可以使用 **let** 关键字完成这一工作,该关键字可以创建一个新的范围变量,并且用您提供的表达式的结果初始化该变量。一旦用值初始化了该范围变量,它就不能用于存储其他值。但如果该范围变量存储的是可查询的类型,则可以对其进行查询。 在下面的示例中,以两种方式使用了 **let**: 1. 创建一个可以查询自身的可枚举类型。 2. 使查询只能对范围变量 word 调用一次 ToLower。如果不使用 **let**,则必须在 **where** 子句的每个谓词中调用 ToLower。 ``` class LetSample1 { 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." }; // Split the sentence into an array of words // and select those whose first letter is a vowel. 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; // Execute the query. foreach (var v in earlyBirdQuery) { Console.WriteLine("\"{0}\" starts with a vowel", v); } // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } /* Output: "A" starts with a vowel "is" starts with a vowel "a" starts with a vowel "earned." starts with a vowel "early" starts with a vowel "is" starts with a vowel */ ``` ## 请参阅 [C# 参考](https://msdn.microsoft.com/zh-cn/library/618ayhy6.aspx) [查询关键字(C# 参考)](https://msdn.microsoft.com/zh-cn/library/bb310804.aspx) [LINQ 查询表达式(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/bb397676.aspx) [Getting Started with LINQ in C#](https://msdn.microsoft.com/zh-cn/library/bb397933.aspx) [如何:在查询表达式中处理异常(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/bb513730.aspx)