`
terryfeng
  • 浏览: 492338 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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()方法,可以传送一个λ表达式,对所有的值进行汇总。

分享到:
评论

相关推荐

    linq标准查询操作符

    LINQ标准查询操作符LINQ标准查询操作符LINQ标准查询操作符LINQ标准查询操作符

    LINQ标准查询操作符[收集].pdf

    LINQ标准查询操作符[收集].pdf

    LINQ 的标准查询操作符

    语言集成查询 (LINQ) 允许开发人员通过强类型化语法使用 Microsoft® .NET Framework 3.5 代码...这些标准查询操作符对序列进行运算并可执行各种运算,如确定序列中是否存在某个值以及对序列运行合计函数(如求和)。

    LINQ标准查询操作符(pdf中文版)---通俗易懂

    LINQ标准查询操作符,对linq的扩展方法作了非常详细的描述,配合了,相当好懂的例子。非常不错,我已经看完了,5星推荐。

    LINQ的标准查询操作符

    语言集成查询(LINQ)允许开发人员通过类型化语法使用Micrisoft.net Framework3.5代码编写类似SQL的查询.....(本资料使用LINQ来执行实际的查询和运算)

    LINQ标准查询操作符.pdf

    Linq 查询语法,作者收集的很详细并配有简单的实例。pdf格式

    LINQ 标准查询操作符

    本文介绍了LINQ标准查询操作符。没有这些操作符,LINQ就不会存在。本文为理解这些操作符的功能提供了很好的基础。了解它们将会很有帮助,因为LINQ的各种Provider都是基于这些操作符来完成各自丰富的功能。

    VB.NET LINQ各项查询操作示例

    这是accessoft上,作者:煮江品茶 写的一个...摘 要:【VB.NET小品】LINQ标准操作符示例 正 文: LINQ是VS中的一个通用的数据查询技术,该技术简化了对SQL、XML等数据的查询。本示例介绍LINQ的标准查询符的使用方法。

    LinQ(Language Integrated Query)体验

    LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable接口的源,并且它还允许适合于目标域或技术的第...

    Linq操作符27个常用说明.docx

    Linq操作符27个常用说明,对Linq to OBJECT进行了详细说明,包括Where,Select,SelectMany,Take,TakeWhile,Skip,SkipWhile,Concat,OrderBy,OrderByDescending,ThenBy等

    LINQ简要技术~~~

    5.3 Nodes、DescendantNodes和DescendantNodesAndSelf操作符 16 5.4 Descendants、Elements和DescendantsAndSelf操作符 16 5.5 InDocumentOrder操作符 16 5.6 Remove和RemoveAll操作符 16 第Ⅲ部分 LINQ到数据集 17 ...

    LINQ 实战 7/11

    2.5.2 更多使用LINQ标准查询操作符的例子 50 2.5.3 将扩展方法引入到实例程序中 51 2.5.4 注意事项 52 2.6 匿名类型 54 2.6.1 使用匿名类型组合数据 55 2.6.2 没有名字的类型也是类型 55 2.6.3 使用...

    LINQ to SQL手册

    LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg LINQ to SQL语句(4)之Join LINQ to SQL语句(5)之Order By LINQ to SQL语句(6)之Group By/Having LINQ to SQL语句(7)之Exists/In/Any/All/Contains LINQ to SQL语句(8)之...

    Linq学习例子

    LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable接口的源,并且它还允许适合于目标域或技术的第...

    linq 简单查询,分页

    linq简单查询,可实现分页,linq to sql

    LINQ简要技术.rar

    5.3 Nodes、DescendantNodes和DescendantNodesAndSelf操作符 16 5.4 Descendants、Elements和DescendantsAndSelf操作符 16 5.5 InDocumentOrder操作符 16 5.6 Remove和RemoveAll操作符 16 第Ⅲ部分 LINQ到数据集...

    新技术讲座LINQ复杂查询 (学习资料带例子)

    新技术讲座LINQ复杂查询 (学习资料带例子) LINQ复杂查询 Linq

    LINQ多个Sum同时执行的方法

    LINQ多个Sum同时执行的方法,以提供效率。

Global site tag (gtag.js) - Google Analytics