例: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});
}
}
Enumerable.Average
には、引数としてFunc<T, int>
をとるオーバーロードがあります。
using System.Linq;
list.Average(item => item.a);
あなたはこれを試すことができます:
var average = ListOfA.Select(x=>x.a).Average();
ここで、ListOfA
はタイプA
のオブジェクトのリストです。
var average = L.Select(r => r.a).Average();