Mit LINQ to Get Summe/ Durchschnitt einer Liste mit benutzerdefinierten Objekten

Ich habe eine Klasse:

public class PointD
{
    public double X
    { get; set; }
    public double Y
    { get; set; }

    public PointD(double x, double y)
    {
        X = x;
        Y=y;
    }
   //operator for +,-, * and /are overridden
 }

Gegeben list<PointD>, wie man den Durchschnitt mit LINQ? Ein for - Schleife äquivalent so etwas wie dieses:

  double xx, yy;
  for ( int i=0; i< ptlist.Count; i++)
     {
         xx+=ptlist[i].X;
         yy+=ptlist[i].Y; 
     }
  return new PointD(){X=xx, Y=yy};

Können Sie alle built-in LINQ-Funktion nur. Sie können nicht definieren, eine Erweiterung, übernimmt diese Funktion.

Irgendeine Idee?

Edit: natürlich, können Sie zwei separate Sum Erweiterung Methode um die Summe für X-und Y-Komponente vor der Zusammenlegung. Aber das ist nicht das, was ich will. Was ich will ist eine einzelne Abfrage/Methode, die nicht den job

  • würde nicht zwei Summen arbeiten? So etwas wie ptlist.Summe(p => p.X); und ptlist.Summe(p => p.Y);
  • "wie man den Durchschnitt mit LINQ?"..Ich denke du meinst die Summe
  • es kann funktionieren, aber ich will alles in einer Abfrage, das ist es eben.
InformationsquelleAutor Graviton | 2009-07-16
Schreibe einen Kommentar