Свой компаратор в LINQ
Метод OrderBy может принять свой
IComparer. Тогда порядок задаёт он, а не
обычное сравнение строк. Здесь более длинная
строка идёт раньше.
Сортировка длин строк по убыванию даёт сначала
"ccc":
string[] words = ["a", "ccc", "bb"];
var q = words.OrderBy(w => w, Comparer<string>.Create((x, y) => y.Length.CompareTo(x.Length)));
Console.WriteLine(q.First());
Пустой источник после OrderBy пуст. FirstOrDefault для строк вернёт null:
Console.WriteLine(Array.Empty<string>().OrderBy(s => s).FirstOrDefault() is null);
Отсортируйте числа по последней цифре через свой компаратор.