LINQ-Group子句、Into子句及orderby子句
1. Group子句
LINQ表达式必须以from子句开头,以select或Group子句结束,所以除了使用select子句也可以使用Group子句来返回元素分组后的结果。Group子句用来查询结果分组,并返回一对象序列。这些对象包含零个或多个与该组的key值匹配的项。
注意:每个分组都不是单个元素,而是一个序列(也属于集合)。序列的元素类型为IGroup<TKey,Telement>(必须以Group子句结束的LINQ表达式,分组结果类型才为序列,序列的元素类型为IGroup<TKey,TElement>)
static void Main(string[] args)
{
//数据源
List<Custom> my = new List<Custom>()
{
new Custom() { name="上官杜伟",Age=,Table=new List<string>() { "",""} },
new Custom() { name="上官王玥",Age=,Table=new List<string>() { "",""} },
new Custom() { name="黄埔杜伟",Age=,Table=new List<string>() { "",""} },
new Custom() { name="黄埔王玥",Age=,Table=new List<string>() { "",""} }
};
//创建LINQ查询
var query = from a in my
//安装名字的前两个字进行分组
group a by a.name.Substring(,); //输出语句
foreach (var item in query)
{
Console.WriteLine("分组键:{0}",item.Key); }
Console.WriteLine("**********************************"); Console.ReadKey();
}
2.Into子句
into子句可以用来创建一个临时标识符,将group、join或select子句的结果存储到这个标识符中。
static void Main(string[] args)
{
int[] arr = new int[] { , , , , , , , , , }; var q = from n in arr
where n > && n<
group n by n % into g //把N%2为分组 存进标识符g中,输出g
from sn in g
select sn; foreach (var item in q)
{
Console.WriteLine(item);
}
Console.ReadKey();
实例2
//数据源
string[] arr = {"杜伟","王玥","于海燕","高冬梅" }; //创建查询语句
var query = from a in arr
group a by a.Substring(,) into f
//根据条件输出分组后的结果
from b in f
select b;
//输出结果
foreach (var item in query)
{
Console.WriteLine(item);
}
Console.ReadKey();
3.OrderBy子句(中间无空格)
orderby 子句可使返回的查询结果按升序或降序排序。升序关键字Ascending指定,而降序有关键字Descending指定。
示例1.
static void Main(string[] args)
{ //数据源
int[] arr = {,,,,,,,,,}; //创建查询语句
var query = from a in arr
orderby a descending
select a;
//输出结果
foreach (var item in query)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
示例2
static void Main(string[] args)
{ //数据源
int[] arr = {,,,,,,,,,}; //创建查询语句
var query = from a in arr
orderby a% descending,a ascending
select a;
//输出结果
foreach (var item in query)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
LINQ-Group子句、Into子句及orderby子句的更多相关文章
- LINQ查询表达式---------orderby子句
LINQ查询表达式---------orderby子句 LINQ可以按元素的一个或多个属性对元素进行排序. class Program { public class PerInfo { public ...
- linq之orderby子句
在Linq查询中,orderby 子句可以对查询结果集进行排序,可以升序也可以降序,排序关键字可以是多个.默认排序方式为升序. 下面的实例代码OrderQuery()中演示了orderby子句对查询的 ...
- C# orderby子句
注意:对联接运算的结果进行排序. 请注意,排序在联接之后执行. 虽然可以在联接之前将 orderby 子句用于一个或多个源序列,不过通常不建议这样做. 某些 LINQ 提供程序可能不会在联接之后保留该 ...
- PetaPoco:SkipTake 和 Page 中的 OrderBy 子句不支持 “[]” 的解决办法
PetaPoco 的 SkipTake 和 Page 方法内部采用了内联视图,而内联视图是不支持 OrderBy 的,因此 PetaPoco 对传入的 SQL 进行分析,对 OrderBy 子句进行分 ...
- Merge:解析on子句和when not match子句的陷阱
在细节上,体现编程的修养.每一位大师,master,其基础必定夯实.废话不多说,直接上干货,Merge子句用于对两个数据表执行数据同步,On子句指定匹配(when matched)条件,When子句指 ...
- 转linq中的Single()、First()、Take(1) LINQ 标准的查询操作符 排序 orderby、thenby、Take
Single():操作一个集合,同时强要求只有一个对象匹配,并返回这一个. First():操作一个集合,可以有多个对象匹配,但是只返回第一个. Take(1):操作一个集合,可以有对个对象匹配,单只 ...
- Linq基础操作之Select,Where,OrderBy,ThenBy源码分析
Linq基础操作之Select,Where,OrderBy,ThenBy源码分析 二:Select 它是延迟执行.yield有得一拼,因为他们都是生成了一个枚举类. if (source is TSo ...
- linq group by子句
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 1. 安装Oracle,配置环境 2. 实现查询From子句 3. 实现查询where子句 4. 实现查询order by子句
一.环境安装1. 登录:以管理员身份登录 sqlplus 登录名/密码 管理员身份登录:sqlplus system/1234562. 登录后,导入案例.下载scott.sql文件,执行下面一行的命令 ...
随机推荐
- Android 如何查看源码 (eclipse 按住 ctrl )
首先要确认 Android SDK Manager 下载并安装了 sources.然后在代码中按住 ctrl 在点一个类名, 如果打开的页面是找不到源码,就点那个按钮,然后找到源码所在的文件夹,就可以 ...
- NOI2009 区间
题目链接:戳我 60分部分分还是很好拿的,排序(按照左端点为第一关键字,右端点为第二关键字)之后一个\(O(n^2)\),暴力判交,更新最小值,就可以水过前12个测试点. #include<io ...
- qi zi
#include<stdio.h> ]; ][]; int N; typedef struct node{ int x; }node; node dui[]; int se(int a) ...
- WORD wFormatTag; /* format type */ //设置波形声音的格式
0x0000 Microsoft Unknown Wave Format 0x0001 Microsoft PCM Format 0x0002 ...
- P5282 【模板】快速阶乘算法(多项式运算+拉格朗日插值+倍增)
题面 传送门 前置芝士 优化后的\(MTT\)(四次\(FFT\)) 题解 这里有多点求值的做法然而被\(shadowice\)巨巨吊起来打了一顿,所以来学一下倍增 成功同时拿到本题最优解和最劣解-- ...
- BZOJ 1091--切割多边形(几何&枚举)
1091: [SCOI2003]切割多边形 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 356 Solved: 157[Submit][Status ...
- android learning
https://www.cnblogs.com/kangjianwei101/p/5621238.html https://blog.csdn.net/write6/article/details/7 ...
- cnpm安装过程中提示optional install error: Package require os(darwin) not compatible with your platform(win32)解决方法
运行cnpm install后,出现 虽然提示不适合Windows,但是问题好像是sass loader出问题的.所以只要执行下面命令即可: 方案一: cnpm rebuild node-sass # ...
- 手机APP测试点总结
一.功能性测试: (1)根据产品需求文档编写测试用例 (2)软件设计文档编写用例 二.兼容性适配性测试: (1)Android.iOS版本的兼容性 (2)手机分辨率兼容性 (3)网络的兼容性:2G/3 ...
- SpringQuartz定时任务cronExpression配置
<!-- 每一个小时跑一次--> <property name="cronExpression"> <value>0 0 0/1 * * ?&l ...