//********************************************** /// /// [LIST] 集計(最大,最小,平均,合計,要素数,アキュムレータ) /// //********************************************** public static void mAggregation() { var ilList = new<int> List() { 11, 2, 23, 44, 29 }; /* 最大 */ Console.WriteLine(ilList.Max()); /* 最小 */ Console.WriteLine(ilList.Min()); /* 平均 */ Console.WriteLine(ilList.Average()); /* 合計 */ Console.WriteLine(ilList.Sum()); /* 要素数 */ Console.WriteLine(ilList.Count()); /* アキュムレータ(最大) */ /* アキュムレータ(累積器)関数で処理した結果(関数:Math.Max(now, next)) */ // now:処理結果 // next:配列を順に設定 Console.WriteLine(ilList.Aggregate((now, next) => Math.Max(now, next))); /* 参考URL */ //http://ameblo.jp/ns-programming-memo/entry-11064901160.html // http://d.hatena.ne.jp/gsf_zero1/20101005/p1 // http://chomado.com/programming/c-sharp/c-aggregate%E3%82%92%E4%BD%BF%E3%81%86linq ilList = new <int> List() { 2, 3, 4, 5, 6 }; Console.WriteLine(ilList.Aggregate((sum, i) => sum + i)); // sum , i => sum , i // (init) 0 , 2 => 0 + 2 = 2 (=sum) //2 , 3 => 2 + 3 = 5 (=sum) //5 , 4 => 5 + 4 = 9 (=sum) //9 , 5 => 9 + 5 = 14 (=sum) // 14 , 6 => 14 + 6 = 20 (=sum) ilList = new <int>List() { 2, 3, 4, 5, 6 }; Console.WriteLine(ilList.Aggregate(10,(sum, i) => sum + i)); // sum , i => sum , i // (init)10 , 2 => 10 + 2 = 12 (=sum) // 12 , 3 => 12 + 3 = 15 (=sum) // 15 , 4 => 15 + 4 = 19 (=sum) // 19 , 5 => 19 + 5 = 24 (=sum) // 24 , 6 => 24 + 6 = 30 (=sum) }