private Position GetCurrentPosition() { using (var enumerator = Waypoints.GetEnumerator()) { enumerator.Reset(); for (var count = CurrentIndex; 0 <= count; count--) { if (false == enumerator.MoveNext()) { break; } if (0 == count) { return(enumerator.Current); } } } throw new Exception(); }