This will not change the order of the original list, but it will sort the resulting list enumeration and select the first point after the order. It handles an empty list case, returning the default value (null).
var firstPoint = Points.OrderBy( p => p.X ).ThenBy( p => p.Y ).FirstOrDefault();
source
share