我點的List
,我想計算出使用LINQ結束的剩餘距離(給出的指標):結合骨料和選擇的LINQ
double remainingToEnd = Points.Skip(CurrentIndex).Aggregate((x, y) => x.DistanceTo(y));
這並不編譯:
不能將lambda表達式轉換爲預期的委託類型,因爲 塊中的某些返回類型不能隱式轉換 到委託返回類型
我通常通過使用Select擴展來解決這種情況,但這會阻止我計算之後的距離。
這很容易通過使用循環來實現,但我想知道是否可以用一些簡單的Linq。我想避免匿名類型。
點的定義如下:
public class Point
{
public float X { get; set; }
public float Y { get; set; }
public float Z { get; set; }
public float DistanceTo(Point p2)
{
float x = this.X - p2.X;
float y = this.Y - p2.Y;
float z = this.Z - p2.Z;
return (float)Math.Sqrt((x * x) + (y * y) + (z * z));
}
}
嗨,什麼是'DistanceTo'的返回類型? – Christos
對不起,這是一個雙重的 – Sturm
沒有問題:)只是想要更多的信息。謝謝 – Christos