сортировка ASCII с учетом регистра c#?
Мне нужно отсортировать массив строк, и он должен быть отсортирован по ASCII.
при использовании массива.Сортировка (myArray), это не сработает.
например: myArray is ("aAzxxxx", " aabxxxx") если используется Array.Сортировки(с myarray) результат будет
- aabxxxx
- aAzxxxx
но если сортировка ascii, потому что a
- aAzxxxx
- aabxxxx
Это результат, который мне нужен. есть идеи о том, как ASCII сортировать массив строк?
thx
3 ответов
Если я правильно понял, вы хотите выполнить порядковое сравнение.
Array.Sort(myArray, StringComparer.Ordinal);
если вы хотите лексическую сортировку по char-коду, вы можете предоставить StringComparer.Ordinal
как компаратор к Array.Sort
.
Array.Sort(myArray,StringComparer.Ordinal);
StringComparer, возвращаемый свойством Ordinal, выполняет простое сравнение байтов, не зависящее от языка. Это наиболее целесообразно при сравнении строк, созданных программным способом, или при сравнении ресурсов с учетом регистра, таких как пароли.
на StringComparer
класс содержит несколько различных компараторы, из которых вы можете выбрать в зависимости от культуры или чувствительности к регистру.
используйте перегрузку Sort
это требует подходящего IComparer<T>
:
Array.Sort(myArray, StringComparer.InvariantCulture);
подобное регистр.
если вы ищете сортировку по значение ASCII используйте StringComparer.Ordinal
:
Array.Sort(myArray, StringComparer.Ordinal);