LemonteaのUnity部屋

C#とかのお話です~

C# 配列やListの平均・合計・最小・最大を求める(Sum,Average,Min,Max)

こんにちは。レモンティーです。

今回は、LinqのSum,Average,Min,Maxで
配列やリストの平均値・合計・最大値・最小値
を求めます。


まずこれを書いておきます

using System.Linq;

今回は、↓のようなListで試してみます。

var list1 = new List<int> { 7, 2, 51, 3, 6, 29, 8, 35, 44, 9 };


まず合計

var sum = list1.Sum();

これで変数Sumにlist1の要素の合計値が入ります。
これだと194でした。

平均・最大・最小についても
これと全く同じようにできます。
それぞれ Average()、Max()、Min() です。


↑ではListや配列の要素の型が数値でしたが
オブジェクトが入っている場合も
ラムダ式でどのプロパティの話なのか指定すればこれらが使えます。

例えば

class Human{
pubic string Name{get; set;}
pubric int Age{get; set;}
}

みたいなクラスのオブジェクトが入った

var Famiry = new List<Human>{
             new Human{Name = "たかし",Age = 45}
     ………
       new Human{Name = "はるか",Age = 19}
 } 

というListがあった場合

var sum = list1.Sum(x => x.Age);

のように書けば全員の年齢の合計がわかります。
平均・最大・最小についても全く同じです。


また、ある条件を満たしている要素だけを計算の対象にする場合は
Whereとラムダ式で指定します。

例えば

list1の中で10を超えている数だけを合計する場合

var sum = list1.Where(x => x > 10).Sum();

と書きます。
これだとは159になります。
平均・最大・最小についても同じです。


今回はこれでおしまいです。

sawalemounity.hatenablog.com

sawalemounity.hatenablog.com

sawalemounity.hatenablog.com