当前位置: 首页 > news >正文

LINQ 标准的查询操作符 合计操作符 Count()、Sum()、Min()、Max()、Average()和Aggregate()...

合计操作符如Count()、Sum()、Min()、Max()、Average()和Aggregate(),不返回一个序列,而返回一个值。 
Count()扩展方法返回集合中的项数。下面的Count()方法应用于Racer 的Years 属性,过滤赛手,只返回 
获得冠军次数超过3 次的赛手:

private static void QuantifiersCount()
        {
            var racers = from r in Formula1.GetChampions()
                         where r.Years.Count() >= 3  //对集合中的子对象集合操作
                         orderby r.Years.Count() descending
                         select new
                         {
                             Name = r.FirstName + " " + r.LastName,
                             TimesChampion = r.Years.Count()
                         };  //匿名对象

            foreach (var r in racers)
            {
                Console.WriteLine("{0} {1}", r.Name, r.TimesChampion);
            }


        }

结果如下: 
Michael Schumacher 7 
Juan Manuel Fangio 5 
Alain Prost 4

Sum()方法汇总序列中的所有数字,返回这些数字的和。

下面的Sum()用于计算一个国家赢得比赛的总次数。

首先根据国家,对赛手进行分组,再在新创建的匿名类型中,给Wins 属性赋予某个国家赢得比赛的总次数。和SQL一个道理

private static void QuantifiersSum()
        {
            var countries = (from c in
                                 from r in Formula1.GetChampions()
                                 group r by r.Country into c  //国家分组 c 来做结果集
                                 select new
                                 {
                                     Country = c.Key,
                                     Wins = (from r1 in c
                                             select r1.Wins).Sum()// 统计
                                 }
                             orderby c.Wins descending, c.Country // 夺冠次数降序,国家名升序
                             select c).Take(5);//取出5个

            foreach (var country in countries)
            {
                Console.WriteLine("{0} {1}", country.Country, country.Wins);
            }

        }
 

根据获得一级方程式冠军的次数,最成功的国家是:
UK 138
Germany 91
Brazil 78
France 51
Finland 40

方法Min()、Max()、Average()和Aggregate()的使用方式与Count()和Sum()相同。

Min()返回集合中的最小值,

Max()返回集合中的最大值,

Average()计算集合中的平均值。

对于Aggregate()方法,可以传送一个λ表达式,对所有的值进行汇总。

源于:http://www.cnblogs.com/TerryFeng/archive/2009/10/07/1578823.html

转载于:https://www.cnblogs.com/08shiyan/archive/2011/05/14/2046507.html

相关文章:

  • cisco IOS下载地址
  • HTTP POST GET 比较
  • 查询两张具有相同数据库结构的表里相或的记录
  • 创建触发器
  • 在Sqlite中通过Replace来实现插入和更新
  • poj2371
  • HDMI/DVI 显示器热插拔与检测原理(HPD)
  • Ping命令
  • 活学活用linux shell之-实现1+2+3...+100=?的7种方法分享
  • 明明白白你的Linux服务器——网络篇(4)
  • 税务信息系统建设安全管理平台的研究(一)
  • linux下查找文件中空行的行号
  • UCenter 来自网络
  • 用jQuery.noConflict()防止$的冲突
  • 【转】中国程序员的文化模式
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 2019.2.20 c++ 知识梳理
  • Babel配置的不完全指南
  • Electron入门介绍
  • js写一个简单的选项卡
  • python3 使用 asyncio 代替线程
  • springboot_database项目介绍
  • ucore操作系统实验笔记 - 重新理解中断
  • 初识MongoDB分片
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 讲清楚之javascript作用域
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 微信小程序设置上一页数据
  • 运行时添加log4j2的appender
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • !$boo在php中什么意思,php前戏
  • #Z2294. 打印树的直径
  • (2)MFC+openGL单文档框架glFrame
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十六)Flask之蓝图
  • (推荐)叮当——中文语音对话机器人
  • (轉)JSON.stringify 语法实例讲解
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .describe() python_Python-Win32com-Excel
  • .gitignore文件—git忽略文件
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET成年了,然后呢?
  • @基于大模型的旅游路线推荐方案
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [.NET]桃源网络硬盘 v7.4
  • [2669]2-2 Time类的定义
  • [Android Studio 权威教程]断点调试和高级调试
  • [Angular 基础] - 自定义指令,深入学习 directive