2015年05月20日

LINQ to Objectサンプル(04): 平均を求める

   このエントリーをはてなブックマークに追加 Clip to Evernote
平均を求める 配列やListに格納されている値の平均を求めるコードです。

■ループを使ったコード
var list = new List<int> { 9, 7, 5, 4, 2, 5, 4, 0, 4, 8, 1, 0, 4 };
int sum = 0;
foreach (var n in list) {
    sum += n;
}
double average = (double)sum / list.Count;
Console.WriteLine(average);

合計を求めてから、要素数で割っています。

■LINQを使ったコード
var list = new List<int> { 9, 7, 5, 4, 2, 5, 4, 0, 4, 8, 1, 0, 4 };
double average2 = list.Average();
Console.WriteLine(average2);

LINQでは、Averageメソッドを呼び出すだけです。
なお、Listの要素がクラスであっても、 double average2 = list.Average(obj => obj.Value); などと書くことができます。
もちろん、合計を求めるSumメソッドもあります。

var list = new List<int> { 9, 7, 5, 4, 2, 5, 4, 0, 4, 8, 1, 0, 4 };
double sum = list.Sum();
Console.WriteLine(sum);


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52419911