C#で配列の平均値を求める方法|Queryable.Average()メソッドの使い方
C#で整数の平均値を求めたい場合は、Queryable.Average()メソッドを使用するのが便利です。このメソッドはSystem.Linq名前空間に含まれており、シーケンス内の数値要素の平均値をdouble型で返します。
整数配列の準備
まず、平均値を求めたい整数の配列を用意します。ここでは次のような配列を使用します。
var arr = new int[] { 10, 17, 25, 30, 40, 55, 60, 70 };Average()メソッドで平均値を取得する
Queryable.Average()を使用する場合は、AsQueryable()メソッドで配列をIQueryable型に変換してから渡します。
double avg = Queryable.Average(arr.AsQueryable());
完全なサンプルコード
using System;
using System.Linq;
class Demo {
static void Main() {
var arr = new int[] { 10, 17, 25, 30, 40, 55, 60, 70 };
double avg = Queryable.Average(arr.AsQueryable());
Console.WriteLine("Average = " + avg);
}
}実行結果
Average = 38.375
補足:より簡潔な書き方
実務では、拡張メソッドとして配列に直接Average()を呼び出す次の書き方が一般的です。
double avg = arr.Average();
どちらの方法でも同じ結果が得られます。Average()メソッドの戻り値はdouble型のため、要素の合計が割り切れない場合でも、小数点以下まで正確な平均値を取得できるのが大きな特徴です。
-
C#のCompareTo()メソッドの使い方を解説
C#では、2つの値を比較する際にCompareTo()メソッドを使用します。このメソッドは、呼び出し元の値と引数で渡した値を比較し、その大小関係を整数値として返します。CompareTo()メソッドの戻り値CompareTo()メソッドの戻り値は以下の3パターンです。0 = 両方の値が等しい場合1 = 呼び出し元の値が引数の値より大きい場合(第2の数値が小さい)-1 = 呼び出し元の値が引数の値より小さい場合(第1の数値が小さい)CompareTo()メソッドの実装例それでは、C#でCompareTo()メソッドを実装するサンプルコードを見てみましょう。ここでは、同じ値を持つ2つのint型変数
-
RubyのArray#zipメソッド徹底解説!2つの配列をスマートに結合する方法
2つの配列を要素ごとに比較して、その違いを見つけたいと思ったことはありませんか? あるいは、各インデックスごとに最大の数値を求めたい、キーのリストと値のリストを組み合わせてハッシュを作りたい――そんな場面にも出会うことがあるでしょう。 …これを「面倒な方法」で実装すると、次のようなコードになります。 例:冗長な書き方 a = [1,2,3,4,5] b = [1,2,3,6,8] c = a.map.with_index { |_, idx| [a[idx], b[idx]] } # [[1, 1], [2, 2], [3, 3], [4, 6], [5, 8]] 確かに動作はしますが