Array.Sort также обеспечивает предикат-перегрузку.Здесь вы можете указать свое поведение сортировки:
Array.Sort(myArray, (p, q) => p[0].CompareTo(q[0]));
Вы также можете использовать LINQ для сортировки массива:
string[] myArray = ...;
string[] sorted = myArray.OrderBy(o => o).ToArray();
LINQ также позволяет сортировать 2D-массив:
string[,] myArray = ...;
string[,] sorted = myArray.OrderBy(o => o[ROWINDEX]).ThenBy(t => t[ROWINDEX]).ToArray();
Поведение сортировки LINQ по умолчанию также в алфавитном порядке.Вы можете изменить это, используя вместо этого OrderByDescending () / ThenByDescending ().