Linq Coding -- Part Three [Let子句]

本文介绍了LINQ查询表达式中的let子句的使用方法,通过示例代码展示了如何利用let子句存储中间结果,以简化查询过程并提高代码可读性。

       在查询表达式中,存储子表达式的结果有时很有用,这样可以在随后的子句中使用。可以使用 let 关键字完成这一工作,该关键字可以创建一个新的范围变量,并且用您提供的表达式的结果初始化该变量。一旦用值初始化了该范围变量,它就不能用于存储其他值。但如果该范围变量存储的是可查询的类型,则可以对其进行查询。
  

 1  public   class  LetFromLinq : Interface
 2      {
 3           #region  Interface Members
 4 
 5           public   void  invoke()
 6          {
 7              String[] strs  =  {   " A penny saved is a penny earned. " ,
 8               " The early bird catches the worm. " ,
 9               " The pen is mightier than the sword. "  };
10              
11               // 使查询只能对范围变量 word 调用一次 ToLower。如果不使用 let,则必须在 where 子句的每个谓词中调用 ToLower。
12              var earlyBirdQuery  =  from sentence  in  strs
13                                   let words  =  sentence.Split( '   ' // 用空格分隔strs数组
14                                   from word  in  words
15                                   let w  =  word.ToLower()  // 把数组元素进行小写操作
16                                    where  w[ 0 ==   ' t '  
17                                   select word;
18 
19               foreach  (var v  in  earlyBirdQuery)
20              {
21                  Console.WriteLine( " \ " { 0 }\ "  starts with a vowel " , v);
22              }
23 
24              Console.WriteLine( " Press any key to exit. " );
25              Console.ReadKey();
26          }
27 
28           #endregion
29      }

 

 

LINQ Coding 目录

  1. Linq Coding -- Part One
  2. Linq Coding -- Part Two[标准查询运算符]
  3. Linq Coding -- Part Three [Let子句]
  4. Linq Coding -- Part Four[Concat应用]
  5. Linq Coding -- Part Five (Join之内部联接查询)
  6. Linq Coding -- Part Six (Join之分组联接)
  7. Linq Coding -- Part Seven (Join之左外部联接、DefaultIfEmpty、GroupJoin)

转载于:https://www.cnblogs.com/RuiLei/archive/2008/02/26/1082600.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值