最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

重学c#系列——linq(4) [三十]

来源:博客园

前言

简单介绍一下linq 查询表达式。

正文

上文其实已经介绍了查询表达式了。


(资料图片)

但是呢,这里就介绍一些复杂一点的。

这里不会去介绍查询表达式,而是直接介绍一些复杂的。

let 字句。

static void Main(string[] args){var files = from fileName in Directory.EnumerateFiles("c://", "test")orderby new FileInfo(fileName).LastAccessTime, fileName descendingselect new FileInfo(fileName);}

这样写会new FileInfo两遍,如果使用let 那么就是一遍。

static void Main(string[] args){var files = from fileName in Directory.EnumerateFiles("c://", "test")let file = new FileInfo(fileName)orderby file.LastAccessTime, fileName descendingselect file;}

第二个是into:

连续查询。

就是一个查询字句,作为第二个查询的集合,像下面这样:

static void Main(string[] args){var files = from fileName in Directory.EnumerateFiles("c://", "test")let file = new FileInfo(fileName)orderby file.LastAccessTime, fileName descendingselect file into tempwhere temp.FullName != "123"select temp;}

前面文章中,使用selectMany,如果用linq 语句如何写呢?

static void Main(string[] args){List list = new List();BasketballTeam basketballTeam = new BasketballTeam();basketballTeam.Name = "无敌球队";basketballTeam.TeamMember = new string[] { "张三", "李四", "王五" };BasketballTeam basketballTeam1 = new BasketballTeam();basketballTeam1.Name = "小新球团";basketballTeam1.TeamMember = new string[] { "张嘛子", "李老帽", "王七三" };list.Add(basketballTeam);list.Add(basketballTeam1);var test = from team in list   from member in team.TeamMember   select team.Name + " "+ member;Console.ReadKey();}

使用两个from处理子集的情况。

linq 基础篇完成,后续为集合篇或者异步篇。

关键词: 简单介绍 就是一个