В этом методе значение вызывающего объекта сравнивается со значением объекта, определяемого параметром
Интерфейс
IComparableint CompareTo(Т
Обобщенный вариант метода
CompareTo действует аналогично необобщенному его варианту. В нем значение вызывающего объекта также сравнивается со значением объекта, определяемого параметром// Отсортировать массив объектов и осуществить в нем поиск, using System;
class MyClass : IComparable
public MyClass(int x) { i = x; }
// Реализовать интерфейс IComparable
}
public bool Equals(MyClass v) { return i == v.i;
}
class SortDemo {
static void Main {
MyClass[] nums = new MyClass[5];
nums[0] = new MyClass(5); nums[l] = new MyClass (2); nums[2] = new MyClass (3); nums[3] = new MyClass(4); nums[4] = new MyClass(1);
// Отобразить исходный порядок следования.
Console.Write("Исходный порядок следования: "); foreach(MyClass о in nums)
Console.Write(о.i + " ");
Console.WriteLine ;
// Отсортировать массив.
Array.Sort(nums);
// Отобразить порядок следования после сортировки.
Console.Write("Порядок следования после сортировки: "); foreach(MyClass о in nums)
Console.Write(о.i + " ");
Console.WriteLine ;
// Найти объект MyClass (2).
MyClass x = new MyClass (2);
int idx = Array.BinarySearch(nums, x);
Console.WriteLine("Индекс элемента массива с объектом MyClass(2): " + idx) ;
}
}
При выполнении этой программы получается следующий результат.