C# 统计列表上的平均值<;T>;领域
我有一个A的列表,我想计算字段A的平均值。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有一个重载,它
最好的方法是什么
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();