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()メソッドでは、λすべての値を要約する式.