



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第LINQ基础之From和GroupBy子句分析:
查询表达式必须以from子句开头
例子中cust是范围变量,范围变量类似于foreach循环中的迭代变量,但在查询表达式中,实际上不发生迭代。执行查询时,范围变量将用作对Customers中的每个后续元素的引用。因为编译器可以推断cust的类型,所以不必显示指定此类型。
Customers是数据源,实现了IEnumerable或IEnumerable(T)或其派生接口的
二、复合FROM子句
查询出成绩有90分以上的学生,得到他们的名字和成绩
//数据源
IListStudentstudents=newListStudent
newStudent{Name="Kevin",Score=newListint{89,93,88,78}},
newStudent{Name="Jackie",Score=newListint{92,87,83,91}},
newStudent{Name="Helen",Score=newListint{53,76,72,62}}
//所有的Linq查询操作都由以下三个不同的操作组成:
//1.获得数据源
//2.创建查询
//3.执行查询
//使用复合from子句查询命令
vargetStudent=
fromstudentinstudents
fromscoreinstudent.Score
wherescore90
selectnew{Name=student.Name,Score=score};
foreach(varstingetStudent)
Console.WriteLine("NAME:{0},SCORE:{1}",st.Name,st.Score);
}
分析:
我们可以看到学生对象中有个Score属性,Score属性本身就是List集合,这时候我们就要用到复合from子句进行查询了。首先遍历学生对象集合中的每个学生对象,然后在用另一个from子句,对每个学生对象中的Score属性进行遍历,筛选出含有90分以上的学生信息进行返回。
GroupBy子句
group子句返回一个IGrouping(TKey,Telement)对象序列,编译时,group子句被转换成对GroupBy方法的调用。
根据首字母分组,并打印到控制台
//数据源
string[]fruits={"apple","banana","peach","orange","melon","lemon"};
//分组查询的查询语句
varquery=fromfinfruits
groupfbyf[0];
//执行查询
foreach(varlettersinquery)
Console.WriteLine("wordsthatstartwithletter:"+letters.Key);
foreach(varwordinletters)
Console.WriteLine(word);
}
分析:
首先遍历字符串数组中的每个字符串,然后根据每个字符串的首字母进行分组,返回结果.
varquery=fromfinfruits
groupfbyf[0]intog
whereg.Key=='p'||g.Key=='b'
selectg;
分析:
如果您想要对每个组执行附加查询操作,则可以使用into上下文关键字指定一个临时标识符。使用into时,必须继续编写该查询,并最终用一个select语句或另一个group子句结束该查询。
string[]strs={"胡广成","张国荣","刘德华","故国冰封","万里雪飘","AAA","胡翰轩","张杰"};
varlist5=strs
//.Where(a=a.Length==3)
.Select(item=item)
.GroupBy(item=item.Length);//分组分组依据是字符串的长度
foreach(variteminlist5)
Console.WriteLine("----------------");
Console.WriteLine($"分组字段是{item.Key}");//item.Key是分组依据显示分组字段
foreach(varitemsinitem)//内层循环遍历分组项
Console.WriteLine(items);
}
分析:
按照名字的长度进行分组显示。
三、多字段分组示例
GroupBy(x=new{x.a,x.b,x.c}).Select(x=(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务分析题库及答案
- 2025中介服务合同
- 智能制造生产线设备采购合同
- 贵州国企招聘2025贵阳供销集团有限公司所属企业第一批招聘21人笔试参考题库附带答案详解
- 浙江国企招聘2025年绍兴市新昌县国有企业公开招聘工作人员66人笔试参考题库附带答案详解
- 青少年班试题及答案
- 2025辽宁抚顺市龙晟保安服务有限责任公司招聘20人笔试参考题库附带答案详解
- 2025福建南平绿发集团有限公司招聘28人笔试参考题库附带答案详解
- 2025春季福建省港口集团有限责任公司校园招聘219人笔试参考题库附带答案详解
- 无人机物流引领低空经济新趋势
- 水利工程竣工报告
- 2024年秋新冀教版英语三年级上册 unit 3 lesson 3 教学课件
- 工业园区保洁合同
- 2024年网络安全知识竞赛考试题库500题(含答案)
- 广州医学院攻读临床医学专业学位研究生培养方案
- 经导管主动脉瓣置换术(TAVR)患者的麻醉管理
- 2024-2030年中国预付卡和礼品卡行业市场发展趋势与前景展望战略分析报告
- 【乡村空心化的风险探究文献综述3000字】
- 烟草公司正式员工劳动合同
- 国能辽宁北票 200MW 风力发电项目地质灾害危险性评估报告
- 《中电联团体标准-220kV变电站并联直流电源系统技术规范》
评论
0/150
提交评论