score:10

Accepted answer

This won't change the ordering of the original list, but will sort the resulting enumeration of the list and select the first point after the ordering. It handles the empty list case by returning a default (null) Point.

var firstPoint = Points.OrderBy( p => p.X ).ThenBy( p => p.Y ).FirstOrDefault();

score:5

var firstPoint = (from p in Points orderby p.X, p.Y select p).FirstOrDefault();

Related Articles