public static void Sort(TKey[] keys, TValue[] items, int index, int length) - Сортирует по нарастающей два одномерных массива в заданных пределах, начиная с элемента, указываемого по индексу index , и включая число элементов, определяемых параметром length. Массив keys содержит ключи сортировки, а массив i terns — значения, связанные с этими ключами. Следовательно, оба массива должны содержать пары “ключ-значение". После сортировки элементы обоих массивов располагаются в заданных пределах по порядку возрастания ключей
public static void Sort(Array keys, Array items, int index, int length, IComparer comparer) - Сортирует по нарастающей два одномерных массива в заданных пределах, начиная с элемента, указываемого по индексу index , и включая число элементов, определяемых параметром length , а также используя способ сравнения, задаваемый параметром comparer. Массив keys содержит ключи сортировки, а массив items — значения, связанные с этими ключами. Следовательно, эти два массива должны содержать пары “ключ-значение". После сортировки элементы обоих массивов располагаются в заданных пределах по порядку возрастания ключей
public static void Sort(TKey[] keys, TV items, int index, int length, Icomparer comparer) - Сортирует по нарастающей два одномерных массива в заданных пределах, начиная с элемента, указываемого по индексу index , и включая число элементов, определяемых параметром length , а также используя способ сравнения, задаваемый параметром comparer. Массив keys содержит ключи сортировки,,а массив items — значения, связанные с этими ключами. Следовательно, эти два массива должны содержать пары .“ключ-значение". После сортировки элементы обоих массивов располагаются в заданных пределах по порядку возрастания ключей
public static bool TrueForAll(T[] array, Predicate match) - Возвращает логическое значение true,если все элементы массива array удовлетворяют условию предиката, задаваемого параметром match. Если один или более элементов этого массива не удовлетворяют заданному условию, то возвращается логическое значение false
Сортировка и поиск в массивах
Содержимое массива нередко приходится сортировать. Для этой цели в классе Arrayпредусмотрен обширный ряд сортирующих методов. Так, с помощью разных вариантов метода Sort()можно отсортировать массив полностью или в заданных пределах либо отсортировать два массива, содержащих соответствующие пары "ключ-значение". После сортировки в массиве можно осуществить эффективный поиск, используя разные варианты метода BinarySearch(). В качестве примера ниже приведена программа, в которой демонстрируется применение методов Sort()и BinarySearch()для сортировки и поиска в массиве значений типа int.
// Отсортировать массив и найти в нем значение.
using System;
class SortDemo {
static void Main() {
int[] nums = { 5, 4, 6, 3, 14, 9, 8, 17, 1, 24, -1, 0 };
// Отобразить исходный порядок следования.
Console.Write("Исходный порядок следования: ");
foreach(int i in nums)
Console.Write(i + " ") ;
Console.WriteLine();
// Отсортировать массив.
Array.Sort(nums);
// Отобразить порядок следования после сортировки.
Console.Write("Порядок следования после сортировки: ");
foreach(int i in nums)
Console.Write(i + " ");
Console.WriteLine();
// Найти значение 14.
int idx = Array.BinarySearch(nums, 14);
Console.WriteLine("Индекс элемента массива со значением 14: " + idx) ;
}
}
Вот к какому результату приводит выполнение этой программы.
Исходный порядок следования: 5 4 6 3 14 9 8 17 1 24 -1 0
Порядок следования после сортировки: -1 0 1 3 4 5 6 8 9 14 17 24
Индекс элемента массива со значением 14: 9
В приведенном выше примере массив состоит из элементов типа int, который относится к категории типов значений. Все методы, определенные в классе Array, автоматически доступны для обработки массивов всех встроенных в C# типов значений. Но в отношении массивов ссылок на объекты это правило может и не соблюдаться. Так, для сортировки массива ссылок на объекты в классе типа этих объектов должен быть реализован интерфейс IComparableили IComparable. Если же ни один из этих интерфейсов не реализован в данном классе, то во время выполнения программы может возникнуть исключительная ситуация в связи с попыткой отсортировать подобный массив или осуществить в нем поиск. Правда, реализовать оба интерфейса, IComparableи IComparable, совсем нетрудно.
Читать дальше