public static class LinqExtensions
{
public static double Variance(this IList<double> data)
{
double sumSquares=0;
double avg = data.Average();
foreach (var num in data)
{
sumSquares += (num - avg * num - avg);
}
return sumSquares / (data.Count - 1);
}
public static decimal? Variance<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector)
{
//where to start for implementing?
}
}
我想为通用类型创建一些LINQ扩展。我知道如何在不使用委托的情况下扩展LINQ,但是我有几种未定义的类型,它们将具有需要枚举的属性以及类似协变的东西。我该如何定义我的Variance扩展方法以便它接受一个委托?