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中AsEnumerable和AsQueryable的区别
- linq 数据类型转换
- linq xml 查询
- linq中join用法
- Linq中select查询
- 使用 LINQPad 调试linq以及lambda表达式
- linq distinct去重
- Linq中的TakeWhile和SkipWhile
- 如何查看linq生成的sql
- Linq操作Datable
- LINQ TO SQL 中join
- linq中延迟执行
- list使用linq排序
- LINQ中Aggregate的用法
- linq 排序
- datatable linq查询
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
- 精英律师 廖佳敏封印恋情曝光,顾婕马失前蹄 你个老不死的(廖佳敏封印恋情曝光)
- 以家人之名广受好评,剧情生动引起观众共鸣,演员张新成圈粉无数(以家人之名广受好评)
- 三兄妹感情再遇波折,人设接连崩塌 《以家人之名》剧情猜不透(三兄妹感情再遇波折)
- 《小敏家》金波想要复婚 这只是他圈套的第1步,更可恶的在后面(小敏家金波想要复婚)
热门推荐
- mysql访问被拒绝(nacos无法连接mysql的解决方法)
- placeholder兼容性
- Web开发中的几个建议
- thinkphp3.2.3 接口开发(ThinkPHP3.2.3框架Memcache缓存使用方法实例总结)
- dedecms统计功能(DedeCMS sql 调用数字递增标签以及修改方法)
- python处理水印(Yii 使用intervention/image拓展实现图像处理功能)
- windows server开启ftp服务器(全面提高Windows系统FTP服务器的安全性能)
- win7iis搭建web服务器(如何搭建云服务器之IIS的配置)
- docker redis安装配置(使用docker搭建redis主从的方法步骤)
- dedecms栏目内容怎么插入分页符(dedecms自动给已经发布过的文章中的关键词加超链接)