C# 统计列表上的平均值<;T>;领域

C# 统计列表上的平均值<;T>;领域,c#,.net,iterator,average,mean,C#,.net,Iterator,Average,Mean,我有一个A的列表,我想计算字段A的平均值。 最好的方法是什么 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}); } } A类 { INTA; int b; } void f() { var L=新列表(); for(int i=0;i有一个重载,它

我有一个A的列表,我想计算字段A的平均值。
最好的方法是什么

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});
    }
}
A类
{
INTA;
int b;
}
void f()
{
var L=新列表();
for(int i=0;i有一个重载,它将
Func
作为参数

using System.Linq;

list.Average(item => item.a);
你可以用


你可以试试这个:

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

其中,
ListOfA
是类型为
a

@D Stanley的对象列表,为什么选择()在这种情况下不是很好吗?在性能方面有什么缺点吗?@Sheen虽然在大多数情况下它不会很明显,但会有轻微的性能影响,因为您在average的枚举器上添加了另一个枚举器。这是一个额外的间接级别。但主要问题是:您不需要它。调用不需要的方法会妨碍您的性能如果你有一大串linq方法调用,在它们之间添加不必要的
选择将使你的眼睛流血。
var average = ListOfA.Select(x=>x.a).Average();