LINQ系列:Linq to Object分组操作符
分组是指根据一个特定的值将序列中的值或元素进行分组。LINQ只包含一个分组操作符:GroupBy。
GroupBy
1>. 原型定义
public static IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
2>. 示例
var expr = from p in context.Products
group p by p.CategoryID; foreach (var item in expr)
{
foreach (var p in item)
{
Console.WriteLine(p.ProductName);
}
}
var expr = context.Cities.GroupBy(c => c.ProvinceID);
var expr = from p in context.Products
group new { p.ProductID, p.CategoryID, p.ProductName }
by p.CategoryID;
var expr = context.Products
.GroupBy(p => p.CategoryID,
p => new
{
p.ProductID,
p.CategoryID,
p.ProductName
});
根据产品的分类ID分组,查询产品数大于5的分类ID和产品数:
var expr = from p in context.Products
group p by p.CategoryID into g
where g.Count() >
orderby g.Count() descending
select new
{
分类ID = g.Key,
产品数 = g.Count()
};
SELECT
[GroupBy1].[K1] AS [CategoryID],
[GroupBy1].[A3] AS [C1]
FROM ( SELECT
[Extent1].[CategoryID] AS [K1],
COUNT(1) AS [A1],
COUNT(1) AS [A2],
COUNT(1) AS [A3]
FROM [dbo].[Product] AS [Extent1]
GROUP BY [Extent1].[CategoryID]
) AS [GroupBy1]
WHERE [GroupBy1].[A1] > 5
ORDER BY [GroupBy1].[A2] DESC
var expr = from p in context.Products
group p by p.CategoryID into g
select new
{
CategoryID = g.Key,
ProductCount = g.Count()
};
var expr = from p in context.Products
group p by p.CategoryID into g
select new
{
CategoryID = g.Key,
TotalUnitsInStock = g.Sum(p => p.UnitsInStock)
};
var expr = from p in context.Products
group p by p.CategoryID into g
select new
{
CategoryID = g.Key,
CheapestUnitPrice = g.Min(p => p.UnitPrice)
};
var expr = from p in context.Products
group p by p.CategoryID into g
let cheapestUnitPrice = g.Min(p => p.UnitPrice)
select new
{
CategoryID = g.Key,
CheapestProducts = g.Where(p => p.UnitPrice == cheapestUnitPrice)
};
LINQ系列:Linq to Object分组操作符的更多相关文章
- LINQ系列目录
1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...
- C# ~ 从 XML 到 Linq 到 Linq to XML
.XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...
- LINQ系列:Linq to Object集合操作符
集合操作符对元素的集合或序列集合进行操作,并返回一个集合.LINQ共有4种集合查询操作符:Distinct.Union.Intersect和Except. 1. Distinct Distinct操作 ...
- linq操作符:分组操作符
分组是根据一个特定的值将序列中的元素进行分组.LINQ只包含一个分组操作符:GroupBy.GroupBy操作符类似于T-SQL语言中的Group By语句.来看看GroupBy的方法定义: publ ...
- LinQ系列文章
温故而知新,想着系统再学习一次LinQ知识点,发现园子里有个非常棒的系列文章,所以Mark下来,方便以后查阅! 系列博客导航: LINQ之路系列博客导航 LINQ之路 1:LINQ介绍 LINQ之路 ...
- LINQ之路14:LINQ Operators之排序和分组(Ordering and Grouping)
本篇继续LINQ Operators的介绍,这里要讨论的是LINQ中的排序和分组功能.LINQ的排序操作符有:OrderBy, OrderByDescending, ThenBy, 和ThenByDe ...
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- LINQ 系列
C#图解教程 第十九章 LINQ LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...
- Linq系列
LINQ 图解 Linq中的Select——投影 Linq学习资源 Expert C# 5.0中的Linq部分
随机推荐
- windows 共享文件夹 给 mac
假设我要共享文件夹A (1)在windows上, 共享该文件夹 (2)然后macbook 和 pc 连接同一个网络 (3)在finder选择连接服务器 (4)输入服务器地址smb://**** ...
- Jaunt登陆索尼PSVR,为其提供大量VR视频
索尼PS VR自从推出就广受用户青睐,当然不仅仅是其低于高端VR头显的价格,还在于PS VR提供的丰富游戏内容.近日,国外视频网站Jaunt还专门为PSVR推出了专版APP,为其提供超过 150 个沉 ...
- BZOJ 2152 & 点分治
Description: 只是打法法塔前测试一下板子 Code: /*================================= # Created time: 2016-04-20 14:3 ...
- [RxJava^Android]项目经验分享 --- RxLifecycle功能实现分析(一)
最近在研究RxJava自定义操作符的实现原理,发现成型的项目案例较少.突然想起在项目中应用的RxLifecycle是使用自定义操作符,便拿来研究了一下.分析之前,跟大家了解一些相关操作符和RxLi ...
- qgis自定义坐标系与qgis.db问题
将编译好的qgis库整理,屏蔽获取删除环境变量中的路径,测试qgis.exe程序功能 如出现如上提示: 原因:是未找到qgis.db文件,无法拷贝到系统默认的C:/Users/Administrato ...
- [field:picname/]和[field:litpic/]区别
显示出二级栏目及以下的所有图片(包含三级栏目的) <ul class="incps"> {dede:arclist row=9 col="3" ty ...
- 原生js移动端touch事件实现上拉加载更多
大家都知道jQuery里没有touch事件,所以在移动端使用原生js实现上拉加载效果还是很不错的,闲话不多说,代码如下: //获取要操作的元素 var objSection = document.ge ...
- Android控件之Notification
Android通知就是让设备在屏幕最顶上那栏里面显示图标,当滑下通知栏之后可以看到列表状的通知选项,有些是"通知"类型的,有些是"正在运行"类型的," ...
- es6入门教程完整版
ECMAScript 6入门 <ECMAScript 6入门>是一本开源的JavaScript语言教程,全面介绍ECMAScript 6新引入的语法特性. 作者:阮一峰 授权:署名-非商用 ...
- SQL Server最近怎样了
SQL Server最近怎样了 又到年终了,大家都作最后冲刺 最近园子里真的多了很多口水帖,无论大家争论得多么激烈,时间依然滴答滴答地过,争论完之后我们依然要继续埋头苦干 为年终奖.为明年做准备 这里 ...