сивов располагаются в заданных пределах по порядку возрастания ключей
public static void
Сортирует по нарастающей два одномерных мас
Sort(TKey[]
сива в заданных пределах, начиная с элемента,
keys, TV items, int index,
указываемого по индексу index , и включая число
int length, Icomparer
элементов, определяемых параметром length , а
comparer)
также используя способ сравнения, задаваемый параметром comparer. Массив keys содержит ключи сортировки,,а массив items — значения, связанные с этими ключами. Следовательно, эти два массива должны содержать пары .“ключ-
значение". После сортировки элементы обоих массивов располагаются в заданных пределах по порядку возрастания ключей
Метод
Назначение
public static bool
Возвращает логическое значение true,если все
TrueForAll(T[] array,
элементы массива array удовлетворяют условию
Predicate match)
предиката, задаваемого параметром 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) ;
}
}
Вот к какому результату приводит выполнение этой программы.
Исходный порядок следования: 54 63 14 98 17 124-10 Порядок следования после сортировки: -101345689141724 Индекс элемента массива со значением 14: 9
В приведенном выше примере массив состоит из элементов типа int, который относится к категории типов значений. Все методы, определенные в классе Array, автоматически доступны для обработки массивов всех встроенных в C# типов значений. Но в отношении массивов ссылок на объекты это правило может и не соблюдаться. Так, для сортировки массива ссылок на объекты в классе типа этих объектов должен быть реализован интерфейс IComparable или IComparable. Если же ни один из этих интерфейсов не реализован в данном классе, то во время выполнения программы может возникнуть исключительная ситуация в связи с попыткой отсортировать подобный массив или осуществить в нем поиск. Правда, реализовать оба интерфейса, IComparable и IComparable, совсем нетрудно.
В интерфейсе IComparable определяется один метод.
int CompareTo(object obj) .
В этом методе значение вызывающего объекта сравнивается со значением объекта, определяемого параметром obj. Если значение вызывающего объекта больше, чем у объекта obj, то возвращается положительное значение; если оба значения равны — нулевое значение, а если значение вызывающего объекта меньше, чем у объекта obj, — отрицательное значение.
Интерфейс IComparable является обобщенным вариантом интерфейса IComparable. Поэтому в нем определен следующий обобщенный вариант метода CompareTo().
Читать дальше