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?
}
}
Ich möchte einige LINQ-Erweiterungen für generische Typen vornehmen. Ich weiß, wie ich LINQ erweitern kann, ohne Delegaten zu verwenden, ich habe mehrere noch nicht definierte Typen, die Eigenschaften haben, die ich aufzählen muss und Dinge wie die Varianz. Wie kann ich meine Varianz-Erweiterungsmethode definieren, so dass ein Delegat benötigt wird?Generische Erweiterungsmethoden in LINQ
+1. Erwägen Sie, die Beispielnutzung im Beitrag hinzuzufügen. –
@Sergey Perfekt. Danke + 1 – wootscootinboogie
Fiddle on DotNetFiddle hat ein Anwendungsbeispiel, aber ich habe es auch in die Antwort kopiert. –