




免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linq基本语法2010Linq基本语法1Linq基本语法2一、LINQ查询符列表5二、使用Enumerable获取Counts6三、定义演示的实例6四、LINQ语法7五、使用LINQ查询结果9Linq基本语法varresult=fromitemincontainerorderbyvalueascending/descendingselectitem; 1、获取全部记录varallCars=fromcinmyCarsselectc; 2、只获取字段名称varnames=fromcinmyCarsselectc.PetName; 这里names就是隐式类型的变量。3、使用Enumerable.Distinct()varmakes=(fromcinmyCarsselectc.Make).Distinct(); 4、即可以在定义的时候调用Enumberalbe扩展函数varnames=fromcinmyCarsselectc.PetName; foreach(varninnames) Console.WriteLine(Name:0,n); 也可以在兼容的数组类型上调用varmakes=fromcinmyCarsselectc.Make; Console.WriteLine(Distinctmakes:); foreach(varminmakes.Distinct() Console.WriteLine(Make:0,m); /NowgetonlytheBMWs. varonlyBMWs=fromcinmyCarswherec.Make=BMWselectc; /GetBMWsgoingatleast100mph. varonlyFastBMWs=fromcinmyCars wherec.Make=BMW&c.Speed=100 selectc; 5、生成新的数据类型(投影)varmakesColors=fromcinmyCarsselectnewc.Make,c.Color; 6、Reverse()或者varsubset=(fromcinmyCarsselectc).Reverse(); foreach(Carcinsubset) Console.WriteLine(0isgoing1MPH,c.PetName,c.Speed); 7、排序默认是ascending/OrderallthecarsbyPetName. varsubset=fromcinmyCarsorderbyc.PetNameselectc; /Nowfindthecarsthataregoinglessthan55mph, /andorderbydescendingPetName subset=fromcinmyCars wherec.Speed55orderbyc.PetNamedescendingselectc; 默认顺序时也可以明确指明varsubset=fromcinmyCars orderbyc.PetNameascendingselectc; 8、Enumerable.Except()两个IEnumerable兼容的对象的差集1. staticvoidGetDiff() 2. 3. ListmyCars=newList 4. Yugo,Aztec,BMW; 5. ListyourCars=newList 6. BMW,Saab,Aztec; 7. varcarDiff=(fromcinmyCarsselectc) 8. .Except(fromc2inyourCarsselectc2); 9. Console.WriteLine(Hereiswhatyoudonthave,butIdo:); 10. foreach(stringsincarDiff) 11. Console.WriteLine(s);/PrintsYugo. 12. 以上介绍Linq基本语法一、LINQ查询符列表Query OperatorsMeaning in Lifefrom, inUsed to define the backbone for any LINQ expression, which allows you to extract a subset of data from a fitting container.whereUsed to define a restriction for which items to extract from a container.selectUsed to select a sequence from the container.join, on, equals, intoPerforms joins based on specified key. Remember, these “joins” do not need to have anything to do with data in a relational database.orderby, ascending, descendingAllows the resulting subset to be ordered in ascending or descending order.group, byYields a subset with data grouped by a specified value.另外还有一些没有操作符号,而是以扩展函数(泛型函数)的方式提供的函数:用不同方式产生结果集: Reverse(), ToArray(), ToList()集合操作: Distinct(), Union(), Intersect()统计函数: Count(), Sum(), Min(), Max()二、使用Enumerable获取Counts为了使用这些Enumerable扩展函数,一般把LINQ查询表达式用括号括起来,先转换为IEnumerable兼容的对象。staticvoidGetCount()stringcurrentVideoGames=Morrowind,BioShock,HalfLife2:Episode1,TheDarkness,Daxter,SystemShock2;/Gnumb=(fromgincurrentVideoGameswhereg.Length6orderbygselectg).Count();/numbisthevalue5.Console.WriteLine(0itemshonortheLINQquery.,numb);三、定义演示的实例classCarpublicstringPetName=string.Empty;publicstringColor=string.Empty;publicintSpeed;publicstringMake=string.Empty;publicoverridestringToString()returnstring.Format(Make=0,Color=1,Speed=2,PetName=3,Make,Color,Speed,PetName);staticvoidMain(stringargs)Console.WriteLine(*FunwithQueryExpressions*n);/ThisarraywillbethebasisofourtestingCarmyCars=newnewCarPetName=Henry,Color=Silver,Speed=100,Make=BMW,newCarPetName=Daisy,Color=Tan,Speed=90,Make=BMW,newCarPetName=Mary,Color=Black,Speed=55,Make=VW,newCarPetName=Clunker,Color=Rust,Speed=5,Make=Yugo,newCarPetName=Hank,Color=Tan,Speed=0,Make=Ford,newCarPetName=Sven,Color=White,Speed=90,Make=Ford,newCarPetName=Mary,Color=Black,Speed=55,Make=VW,newCarPetName=Zippy,Color=Yellow,Speed=55,Make=VW,newCarPetName=Melvin,Color=White,Speed=43,Make=Ford;/Wewillcallvariousmethodshere!Console.ReadLine();四、LINQ语法基本语法var result = from item in container orderby value ascending/descending select item;1、获取全部记录varallCars=fromcinmyCarsselectc;2、只获取字段名称varnames=fromcinmyCarsselectc.PetName;这里names就是隐式类型的变量。3、使用Enumerable.Distinct()varmakes=(fromcinmyCarsselectc.Make).Distinct();4、即可以在定义的时候调用Enumberalbe扩展函数varnames=fromcinmyCarsselectc.PetName;foreach(varninnames)Console.WriteLine(Name:0,n);也可以在兼容的数组类型上调用varmakes=fromcinmyCarsselectc.Make;Console.WriteLine(Distinctmakes:);foreach(varminmakes.Distinct()Console.WriteLine(Make:0,m);/NowgetonlytheBMWs.varonlyBMWs=fromcinmyCarswherec.Make=BMWselectc;/GetBMWsgoingatleast100mph.varonlyFastBMWs=fromcinmyCarswherec.Make=BMW&c.Speed=100selectc;5、生成新的数据类型(投影)varmakesColors=fromcinmyCarsselectnewc.Make,c.Color;6、Reverse()varsubset=(fromcinmyCarsselectc).Reverse();foreach (Car c in subset)Console.WriteLine(0 is going 1 MPH, c.PetName, c.Speed);或者varsubset=fromcinmyCarsselectc;foreach(Carcinsubset.Reverse()Console.WriteLine(c.ToString();7、排序默认是ascending/OrderallthecarsbyPetName.varsubset=fromcinmyCarsorderbyc.PetNameselectc;/Nowfindthecarsthataregoinglessthan55mph,/andorderbydescendingPetNamesubset=fromcinmyCarswherec.Speed55orderbyc.PetNamedescendingselectc;默认顺序时也可以明确指明varsubset=fromcinmyCarsorderbyc.PetNameascendingselectc;8、Enumerable.Except()两个IEnumerable兼容的对象的差集staticvoidGetDiff()ListmyCars=newListYugo,Aztec,BMW;ListyourCars=newListBMW,Saab,Aztec;varcarDiff=(fromcinmyCarsselectc).Except(fromc2inyourCarsselectc2);Console.WriteLine(Hereiswhatyoudonthave,butIdo:);foreach(stringsincarDiff)Console.WriteLine(s);/PrintsYugo.五、使用LINQ查询结果如果查询结果是强类型的,如string,List等,就可以不用var类型,而是使用合适的IEnumerable或IEnumerable(因为IEnumerable也扩展了IEnumerable)类型。classProgramstaticvoidMain(stringargs)Console.WriteLine(*LINQTransformations*n);IEnumerablesubset=GetStringSubset();foreach(stringiteminsubset)Console.WriteLine(item);Console.ReadLine();staticIEnumerableGetStringSubset()stringcurrentVideoGames=Morrowind,BioShock,HalfLife2:Episode1,TheDarkness,Daxter,SystemShock2;/NotesubsetisanIEnumerablecompatibleobject.IEnumerablesubset=fromgincurrentVideoGameswhereg.Length6orderbygselectg;returnsubset;只有该函数原型返回类型是IEnumerable,才可以使用var定义返回结果集类型。但是在投影操作中,由于结果集合类型是隐式的,在编译时才能确定,所以这里强制规定必须使用var/Error!Cantreturnavardatatype!staticvarGetProjectedSubset()CarmyCars=newCarnewCarPetName=Henry,Color=Silver,Speed=100,Make=BMW,newCarPetName=Daisy,Color=Tan,Speed=90,Make=BMW,newCarPetName=Mary,Color=Black,Speed=55,Make=VW,newCarPetName=Clunker,Color=Rust,Speed=5,Make=Yugo,newCarPetName=Melvin,Color=White,Speed=43,Make=Ford;varmakesColors=fromcinmyCarsselectnewc.Make,c.Color;returnmakesColors;/Nope!可以使用ToArray()把投影结果集转化为标志的CRL数组对象:/ReturnvalueisnowanArray.staticArrayGetProjectedSubset()CarmyCars=newCarnewCa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基因治疗证据分析-洞察及研究
- 项目三休闲活动策划日本客户87课件
- 国际贸易实务履行进口合同2025年
- 2025年房地产估价师之基本制度法规政策含相关知识综合练习试卷A卷附答案
- 教育领域投资并购策略研究:2025年整合路径与市场机遇报告
- 2025版互联网金融服务股东退股合作协议范本
- 二零二五年度建筑材料运输简易服务合同
- 2025年度钢铁行业环保设施建设施工合同
- 2025年度门面房买卖与品牌连锁合作协议
- 二零二五年度离婚协议书下载与后续法律援助合同
- 肾肿瘤考试题库及答案
- 2025年中小学教师信息技术应用能力提升培训测试题库及答案
- 2025浙能集团甘肃有限公司新能源项目招聘22人笔试历年参考题库附带答案详解
- 【历史 广东卷】2025年广东省高考招生统一考试真题历史试卷(真题+答案)
- 艾梅乙反歧视培训课件
- GB/T 45785-2025压缩空气站能源绩效评价
- 英语四级单词表4500
- GB/T 10069.3-2024旋转电机噪声测定方法及限值第3部分:噪声限值
- 2024年度医患沟通课件
- GA 1808-2022军工单位反恐怖防范要求
- 直肠癌患者得护理个案
评论
0/150
提交评论