Обнаружил недавно офигенный паттерн, который уже много раз использовал.
Например, нужно взять в Linq элемент, в котором некоторая проперть минимальна. Например, элемент с минимальной шириной.
По сути это source.OrderBy(i => i.width).First(), но это будет O(n * log(n))
Сам алгоритм min O(n), но source.Min(i => i.width) дает ширину, а не сам элемент.
Тут можно схитрить, воспользовавшись тем, что туплов определен CompareTo в лексикографическом порядке.
g.Select(i => (i.width, i)).
Min().i
То же самое работает для Max.
Если знает метод лучше, поделитесь.