web-dev-qa-db-ja.com

list <T>フィールドでのカウント平均

例:Aのリストがあり、そのフィールドaの平均を数えたい。それを行うための最良の方法は何ですか?私が見つけた愚かな解決策は、LAverage = new List()を作成し、それをすべてのL.aで埋めて、LAverage.average()を呼び出すことです。

class A
{
    int a;
    int b;
}
void f()
{
    var L = new List<A>();
    for (int i=0; i<3; i++)
    {
        L.Add(new A(){a = i});
    }
}
13
Nihau

Enumerable.Average には、引数としてFunc<T, int>をとるオーバーロードがあります。

using System.Linq;

list.Average(item => item.a);
27
dcastro

あなたはこれを試すことができます:

var average = ListOfA.Select(x=>x.a).Average();

ここで、ListOfAはタイプAのオブジェクトのリストです。

4
Christos

Enumerable.Average

var average = L.Select(r => r.a).Average();
3
Sajeetharan