コレクション LINQ

[C#] コレクション要素の平均値を取得する(.Average)

2021年7月15日

コレクション要素の平均値を取得するには、.Average() を使用します。

サンプル

例1)List<int>型の場合

using System.Linq;

//int型のList
List<int> list = new List<int>(){1, 2, 3, 4, 5};

//要素の平均値を求める
double result = list.Average();

結果

3

例2)Dictionary型の場合

using System.Collections.Generic;
using System.Linq;

//Dictioinaryの生成
Dictionary<string, int> dc = new Dictionary<string, int>();
dc.Add("田中", 80);
dc.Add("鈴木", 55);
dc.Add("伊藤", 75);

//Valueの平均値を求める
double result = dc.Average(x => x.Value);

結果

70

例3)データクラスListの場合

using System.Linq;

//Prefクラス
class Pref{
  public int No {get; set;}
  public string Name {get; set;}
  public int Population {get; set;}
}

//PrefクラスのList
var list = new List<Pref>();
list.Add(new Pref{No=1, Name="北海道", Population=5381733});
list.Add(new Pref{No=2, Name="青森県", Population=1308265});
list.Add(new Pref{No=3, Name="岩手県", Population=1279594});
list.Add(new Pref{No=4, Name="宮城県", Population=2333899});
list.Add(new Pref{No=5, Name="秋田県", Population=1023119});

//Pref.Populationの平均値を求める
double result = list.Average(x => x.Population);

結果

2265322

備考

  • LINQを使用するには、「using System.Linq;」の宣言が必要です。
  • リストに要素が存在しない場合は「InvalidOperationException」が発生します。
  • .Average()の戻り型はdouble型です。

-コレクション, LINQ