сортировка ASCII с учетом регистра c#?

Мне нужно отсортировать массив строк, и он должен быть отсортирован по ASCII.

при использовании массива.Сортировка (myArray), это не сработает.

например: myArray is ("aAzxxxx", " aabxxxx") если используется Array.Сортировки(с myarray) результат будет

  1. aabxxxx
  2. aAzxxxx

но если сортировка ascii, потому что a

  1. aAzxxxx
  2. 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);