Ich habe eine Klasse:
%Vor% Wieviele list<PointD>
erhalten Sie, wenn Sie LINQ verwenden? Ein for
Schleifenäquivalent wird etwa so aussehen:
Sie können nur eine integrierte LINQ-Funktion verwenden. Sie können keine Erweiterung definieren, die sich um diese Funktion kümmert.
Irgendeine Idee?
Bearbeiten: Natürlich können Sie zwei separate Sum
Erweiterung-Methode zu Summe für X und Y-Komponente vor dem Zusammenführen verwenden. Aber das ist nicht was ich will. Was ich will, ist eine einzelne Abfrage / Methode, die den Job
Die Funktion Aggregate
wäre hier praktisch.
Stellen Sie sicher, dass Sie den Operator /
für die Typen PointD
und int
definiert haben, und dies sollte die Aufgabe erledigen.
Hinweis: Ich bin mir nicht ganz sicher, ob Sie die Summe oder den Durchschnitt hier haben möchten (Ihre Frage ist etwas mehrdeutig), aber ich habe Beispiele für beide hinzugefügt.
Sie müssen stattdessen die Methode Aggregate
verwenden, damit Sie Ihre eigene Aggregationsfunktion bereitstellen können ( Sum
ist nur ein praktischer Spezialfall dieser Methode). Etwas wie:
Ich weiß, dass Sie sagen, dass Sie keine zusätzlichen Methoden definieren möchten, aber wenn dies eine übliche Operation ist, würde ich geneigt sein, eine Erweiterungsmethode dafür zu schreiben, d. h.
%Vor%Weil es viel lesbarer ist, schreiben zu können:
%Vor%