预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

c#查询关键字之group子句的使用c#查询关键字之group子句的使用引导语:C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。以下是小编整理的c#查询关键字之group子句的使用,欢迎参考阅读!group子句返回一个IGrouping<(Of<(TKey,TElement>)>)对象序列,这些对象包含零个或更多个与该组的键值匹配的项。例如,可以按照每个字符串中的第一个字母对字符串序列进行分组。在这种情况下,第一个字母是键且具有char类型,并且存储在每个IGrouping<(Of<(TKey,TElement>)>)对象的Key属性中。编译器可推断该键的类型。可以用group子句结束查询表达式,如下面的示例所示:C# //QueryvariableisanIEnumerable<IGrouping<char,Student>>varstudentQuery1=fromstudentinstudentsgroupstudentbystudent.Last[0];如果您想要对每个组执行附加查询操作,则可以使用into上下文关键字指定一个临时标识符。使用into时,必须继续编写该查询,并最终用一个select语句或另一个group子句结束该查询,如下面的代码摘录所示:C# //Groupstudentsbythefirstletteroftheirlastname//QueryvariableisanIEnumerable<IGrouping<char,Student>>varstudentQuery2=fromstudentinstudentsgroupstudentbystudent.Last[0]intogorderbyg.Keyselectg;本主题中的“示例”部分中提供了使用含有和不含into的group的更完整示例。枚举组查询的`结果由于group查询产生的IGrouping<(Of<(TKey,TElement>)>)对象实质上是列表的列表,因此必须使用嵌套的foreach循环来访问每一组中的各个项。外部循环用于循环访问组键,内部循环用于循环访问组本身中的每个项。组可能具有键,但没有元素。以下是执行上述代码示例中的查询的foreach循环:C# //Iterategroupitemswithanestedforeach.ThisIGroupingencapsulates//asequenceofStudentobjects,andaKeyoftypechar.//Forconvenience,varcanalsobeusedintheforeachstatement.foreach(IGrouping<char,Student>studentGroupinstudentQuery2){Console.WriteLine(studentGroup.Key);//Explicittypeforstudentcouldalsobeusedhere.foreach(varstudentinstudentGroup){Console.WriteLine(" {0},{1}",student.Last,student.First);}}键类型组键可以是任何类型,如字符串、内置数值类型、用户定义的命名类型或匿名类型。按字符串进行分组上述代码示例使用的是char。可以很容易地改为指定字符串键,如完整的姓氏:C# //Sameaspreviousexampleexceptweusetheentirelastnameasakey.//QueryvariableisanIEnumerable<IGrouping<string,Student>>varstudentQuery3=fromstudentinstudentsgroupstudentbystudent.Last;按布尔进行分组下面的示例演示使用布尔值作为键将结果划分成两个组。请注意,该值是由group子句中的子表达式产生的。C# classGroupSample1{//Theelementtypeofthedatasource.publicclassStudent{publicstringFirst{get;set;}publicstringLast{get;set;}publicintID{get;set;}publicList<int>Scores;}public