码迷,mamicode.com
首页 > 其他好文 > 详细

linq中let关键字学习

时间:2014-10-29 14:30:10      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:http   ar   使用   for   sp   strong   div   on   art   

linq中let关键字就是对子查询的一个别名,let子句用于在查询中添加一个新的局部变量,使其在后面的查询中可见。

 

linq中let关键字实例

 

1、传统下的子查询与LET关键字的区别

 
 
C# 代码   复制
bubuko.com,布布扣
bubuko.com,布布扣static void Main(string[] args)
bubuko.com,布布扣{
bubuko.com,布布扣    int[] numbers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
bubuko.com,布布扣
bubuko.com,布布扣    //传统下的子查询做法
bubuko.com,布布扣    var query = from num in numbers
bubuko.com,布布扣                select num * (from n in numbers
bubuko.com,布布扣                              where n % 2 == 0
bubuko.com,布布扣                              select n).Count(); 
bubuko.com,布布扣
bubuko.com,布布扣    //使用LET关键字的做法
bubuko.com,布布扣    var query = from num in numbers
bubuko.com,布布扣          let evenNumbers = from n in numbers
bubuko.com,布布扣                             where n % 2 == 0
bubuko.com,布布扣                              select n
bubuko.com,布布扣           select num * evenNumbers.Count(); 
bubuko.com,布布扣
bubuko.com,布布扣    foreach (var item in query)
bubuko.com,布布扣    {
bubuko.com,布布扣        Console.WriteLine(item);
bubuko.com,布布扣    } 
bubuko.com,布布扣
bubuko.com,布布扣    Console.Read(); 
bubuko.com,布布扣
bubuko.com,布布扣} 
bubuko.com,布布扣

 

2、把每个单词开头包含a或者e的找出来

 
 
C# 代码   复制
bubuko.com,布布扣
bubuko.com,布布扣using System;
bubuko.com,布布扣using System.Linq;
bubuko.com,布布扣
bubuko.com,布布扣public class Test
bubuko.com,布布扣{
bubuko.com,布布扣    static void Main(string[] args)
bubuko.com,布布扣    {
bubuko.com,布布扣        string[] strings = { "A penny saved is a penny earned.", "The aaxly sdj", "the pa is no" };
bubuko.com,布布扣
bubuko.com,布布扣        var query = from sentence in strings
bubuko.com,布布扣                    let words = sentence.Split( )//用空格分割成数组                
bubuko.com,布布扣                    from word in words
bubuko.com,布布扣                    let w = word.ToLower()//把每个字母小写        
bubuko.com,布布扣                    where w[0] == a || w[0] == e
bubuko.com,布布扣                    select word;
bubuko.com,布布扣
bubuko.com,布布扣        foreach (var s in query)
bubuko.com,布布扣        {
bubuko.com,布布扣            Console.WriteLine(s);
bubuko.com,布布扣        }
bubuko.com,布布扣        Console.ReadLine();
bubuko.com,布布扣    }
bubuko.com,布布扣}
bubuko.com,布布扣

 

3、linq实例3

 
 
C# 代码   复制
bubuko.com,布布扣
bubuko.com,布布扣var query = from p in persons
bubuko.com,布布扣            let friendlyName = p.Gender == "" ? "Mr" : "Ms" + p.Name
bubuko.com,布布扣            select new
bubuko.com,布布扣            {
bubuko.com,布布扣                UserID = p.ID,
bubuko.com,布布扣                FriendName = friendlyName
bubuko.com,布布扣            };
bubuko.com,布布扣foreach (var item in query)
bubuko.com,布布扣{
bubuko.com,布布扣    Console.WriteLine("No:{0},Friendly Name:{1}", item.UserID, item.FriendName);
bubuko.com,布布扣}
bubuko.com,布布扣

 

4、linq实例4

 
 
C# 代码   复制
bubuko.com,布布扣
bubuko.com,布布扣public class Singer
bubuko.com,布布扣    {
bubuko.com,布布扣        public string Name { set; get; }
bubuko.com,布布扣        public int Age { set; get; }
bubuko.com,布布扣    }
bubuko.com,布布扣
bubuko.com,布布扣 List<Singer> list = new List<Singer>(){
bubuko.com,布布扣              new Singer{Name="zhangs" ,Age=21},
bubuko.com,布布扣              new Singer{Name="zhangs",Age=25},
bubuko.com,布布扣              new Singer{Name="margy",Age=21}
bubuko.com,布布扣            };
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣            var query = from a in list
bubuko.com,布布扣                        let b = a.Name
bubuko.com,布布扣                        let c=a.Age
bubuko.com,布布扣                        where b =="zhangs" & c>21
bubuko.com,布布扣                        select a;
bubuko.com,布布扣            foreach (var item in query)
bubuko.com,布布扣            {
bubuko.com,布布扣                Response.Write("姓名: "+item.Name+"  年龄:"+item.Age);
bubuko.com,布布扣            }
bubuko.com,布布扣
bubuko.com,布布扣//结果           姓名: zhangs 年龄:25
bubuko.com,布布扣//使用let 建立了个范围变量,这个范围变量在后续的where子句中使用,如果不使用let子句,where子句的表达式将写成这样:
bubuko.com,布布扣//where a.Name=="zhangs" & a.Age>21</span>
bubuko.com,布布扣

linq中let关键字学习

标签:http   ar   使用   for   sp   strong   div   on   art   

原文地址:http://www.cnblogs.com/ranran/p/4059324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!