Ответ 1
Этот фрагмент кода работает правильно
Возможно, это звучит странно, но после долгого программирования я просто получил сортировку массивов. Все было так, как я ожидал, пока не попытался отсортировать массив строк, содержащих внутри себя две идентичные строки. Давайте посмотрим:
Предположим, что имеет место следующее:
string[] testArray = new string[]
{
"aa",
"ab",
"ac",
"ad",
"ab",
"af"
};
Array.Sort(testArray, StringComparer.InvariantCulture);
В этой ситуации я получаю простой массив с нулевыми значениями. Я понял, что это поведение связано с тем, что значения внутри массива не являются отдельными значениями. Есть ли лучшее объяснение этому? Как отсортировать нечеткий массив?
Этот фрагмент кода работает правильно
Если у вас есть проблемы с числами (скажем, 1, 2, 10, 12, которые будут отсортированы 1, 10, 12, 2), вы можете использовать LINQ:
var arr = arr.OrderBy(x=>x).ToArray();
На самом деле я не вижу никаких нулей:
Дано:
static void Main()
{
string[] testArray = new string[]
{
"aa",
"ab",
"ac",
"ad",
"ab",
"af"
};
Array.Sort(testArray, StringComparer.InvariantCulture);
Array.ForEach(testArray, x => Console.WriteLine(x));
}
Я получил: