linq中let
类别:编程学习 浏览量:1057
时间:2014-9-19 linq中let
linq中letlinq中let关键字就是对子查询的一个别名,let子句用于在查询中添加一个新的局部变量,使其在后面的查询中可见。
linq中let关键字实例
1、传统下的子查询与LET关键字的区别
static void Main(string[] args)
{
int[] numbers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//传统下的子查询做法
var query = from num in numbers
select num * (from n in numbers
where n % 2 == 0
select n).Count();
//使用LET关键字的做法
var query = from num in numbers
let evenNumbers = from n in numbers
where n % 2 == 0
select n
select num * evenNumbers.Count();
foreach (var item in query)
{
Console.WriteLine(item);
}
Console.Read();
}
2、把每个单词开头包含a或者e的找出来
using System;
using System.Linq;
public class Test
{
static void Main(string[] args)
{
string[] strings = { "A penny saved is a penny earned.", "The aaxly sdj", "the pa is no" };
var query = from sentence in strings
let words = sentence.Split(' ')//用空格分割成数组
from word in words
let w = word.ToLower()//把每个字母小写
where w[0] == 'a' || w[0] == 'e'
select word;
foreach (var s in query)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}
3、linq实例3
var query = from p in persons
let friendlyName = p.Gender == "男" ? "Mr" : "Ms" + p.Name
select new
{
UserID = p.ID,
FriendName = friendlyName
};
foreach (var item in query)
{
Console.WriteLine("No:{0},Friendly Name:{1}", item.UserID, item.FriendName);
}
4、linq实例4
public class Singer
{
public string Name { set; get; }
public int Age { set; get; }
}
List<Singer> list = new List<Singer>(){
new Singer{Name="zhangs" ,Age=21},
new Singer{Name="zhangs",Age=25},
new Singer{Name="margy",Age=21}
};
var query = from a in list
let b = a.Name
let c=a.Age
where b =="zhangs" & c>21
select a;
foreach (var item in query)
{
Response.Write("姓名: "+item.Name+" 年龄:"+item.Age);
}
//结果 姓名: zhangs 年龄:25
//使用let 建立了个范围变量,这个范围变量在后续的where子句中使用,如果不使用let子句,where子句的表达式将写成这样:
//where a.Name=="zhangs" & a.Age>21</span>
标签:linq
您可能感兴趣
- LINQ TO SQL 中join
- 如何查看linq生成的sql
- linq中AsEnumerable和AsQueryable的区别
- 使用 LINQPad 调试linq以及lambda表达式
- linq not in 查询
- list使用linq排序
- linq 数据类型转换
- linq 排序
- LINQ中Aggregate的用法
- linq中延迟执行
- linq中group by
- Linq中where查询
- linq distinct去重
- datatable linq查询
- Linq中的TakeWhile和SkipWhile
- linq xml 查询
- 这支 奇兵队 腕大 有范儿还各怀绝技,毒贩杀人犯见了都要仓皇而逃(这支奇兵队腕大)
- 雄藩崛起 奇兵队与幕末长州藩军事改革(雄藩崛起奇兵队与幕末长州藩军事改革)
- 九月初,爱如蜜糖,甜到心扉,迷恋彼此,一日不见兮,思之若狂(九月初爱如蜜糖)
- ()
- 对你思念入骨的女人,跟你见面时会有这几种表现,藏都藏不住(对你思念入骨的女人)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
热门推荐
- php字符串教程学习(php学习笔记之字符串常见操作总结)
- 护卫神系统备份(护卫神主机管理系统怎么用?护卫神主机管理系统使用攻略)
- tomcat需要修改哪几个端口参数(详解tomcat各个端口的作用)
- 404页面如何设置
- php漏洞处理方法(php解决安全问题的方法实例)
- 怎样查看mysql的ddl窗口(详解MySQL8.0原子DDL语法)
- apache实时框架(教你快速开启Apache SkyWalking的自监控)
- mysql最佳配置(详解DBeaver连接MySQL8以上版本以及解决可能遇到的问题)
- 如何查看本机docker的安装目录(使用rpm安装指定版本docker1.12.6的详细步骤)
- centos安装php5.6(Centos7 Yum安装PHP7.2流程教程详解)