Use linq to compute length of line defined as array of points
Another possible answer (first time I've ever suggested two answers) is to keep your existing approach, but modified just a little bit by using .Select()'s under-appreciated little brother that gives you access to an index variable:

float length = line.Skip(1)
    .Select((point, index) =&gt; (point - line[index]).Magnitude)
    .Sum();


Heck, speaking of overloads.  You can also keep your existing approach but use .Sum()'s overload:

Enumerable.Range(0, line.Length - 1)
    .Sum(pointIndex =&gt; (line[pointIndex + 1] - line[pointIndex]).Magnitude)