Класс StringComparer объявляется в пространстве имен System и реализует, среди прочего, интерфейсы IComparer и IComparer. Поэтому экземпляр объек та типа StringComparer может быть передан в качестве аргумента параметру типа IComparer. Кроме того, в классе StringComparer определен ряд доступных только для чтения свойств, возвращающих экземпляр объекта типа StringComparer и под держивающих различные способы сравнения символьных строк. Все эти свойства пе речислены ниже. Свойство Способ сравнения public static StringComparer CurrentCulture {get; } С учетом регистра и культурной среды public static StringComparer CurrentCultureIgnoreCase {get; } Без учета регистра, но с учетом культурной среды public static StringComparer InvariantCulture {get; } С учетом регистра и безотносительно к культурной среде public static StringComparer InvariantCultureIgnoreCase {get; } Без учета регистра и безотносительно к культурной среде public static StringComparer Ordinal {get; } Порядковое сравнение с учетом регистра public static StringComparer OrdinalIgnoreCase {get; } Порядковое сравнение без учета регистра

Передавая явным образом экземпляр объекта типа StringComparer, можно со вершенно однозначно определить порядок сортировки или поиска в массиве. Напри мер, в приведенном фрагменте кода сортировка и поиск в массиве символьных строк осуществляется с помощью свойства StringComparer.Ordinal. string[] strs = { "xyz", "one" , "beta", "Alpha" }; // ... Array.Sort(strs, StringComparer.Ordinal); int idx = Array.BinarySearch(strs, "beta", StringComparer.Ordinal); Обращение содержимого массива

Иногда оказывается полезно обратить содержимое массива и, в частности, отсорти ровать по убывающей массив, отсортированный по нарастающей. Для такого обраще ния массива достаточно вызвать метод Reverse. С его помощью можно обратить содержимое массива полностью иди частично. Этот процесс демонстрируется в при веденной ниже программе. // Обратить содержимое массива. using System; class ReverseDemo { static void Main { int[] nums = { 1, 2, 3, 4, 5 }; // Отобразить исходный порядок следования. Console.Write("Исходный порядок следования: "); foreach(int i in nums) Console.Write(i + " "); Console.WriteLine; // Обратить весь массив. Array.Reverse(nums); // Отобразить обратный порядок следования. Console.Write("Обратный порядок следования: "); foreach(int i in nums) Console.Write(i + " "); Console.WriteLine; // Обратить часть массива. Array.Reverse(nums, 1, 3); // Отобразить обратный порядок следования. Console.Write("Частично обращенный порядок следования: "); foreach(int i in nums) Console.Write(i + " "); Console.WriteLine; } }

Эта программа дает следующий результат. Исходный порядок следования: 1 2 3 4 5 Обратный порядок следования: 5 4 3 2 1 Частично обращенный порядок следования: 5 2 3 4 1

Копирование массива

Перейти на страницу:

Похожие книги