1
2

C# LINQ 最大値・最小値・合計値などを算出する

Posted at

備忘録

LINQには最大値・最小値・合計値などを算出する便利な機能があるが、標準偏差を求めるメソッドがない。

サンプルコード

List<double> doubles = new List<double> { 3.2, 3.5, 3.6, 4 };

//最大値
double max = doubles.Max();

//最小値
double min = doubles.Min();

//合計値
double sum = doubles.Sum();

//平均値
double mean = doubles.Average();

//分散 = 自乗和 / 要素数 - 平均値^2
double variance = doubles.Select(x => Math.Pow(x - mean, 2)).Average();

//標準偏差 = 分散の平方根
double stdDev = Math.Sqrt(variance);

//最頻値
double mode = doubles.GroupBy(x => x) // 各要素の出現回数をカウントする
	.OrderByDescending(g => g.Count()) // 出現回数が最大の要素を取得する
	.Select(g => g.Key) // 最頻値を取得する
	.First();

//中央値
double median = doubles.OrderBy(x => x).ElementAt(doubles.Count / 2);

参考ページ

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2