using System;
public class ImplementingIComparable {
public static void Main()
{
Employee[] arr = new Employee[4];
arr[0] = new Employee("A", 1);
arr[1] = new Employee("B", 2);
arr[2] = new Employee("C", 4);
arr[3] = new Employee("D", 3);
Array.Sort(arr);
foreach (Employee emp in arr)
Console.WriteLine("Employee: {0}", emp);
// Find employee id 2 in the list;
Employee employeeToFind = new Employee(null, 2);
int index = Array.BinarySearch(arr, employeeToFind);
if (index != -1)
Console.WriteLine("Found: {0}", arr[index]);
}
}
public class Employee: IComparable
{
public Employee(string name, int id)
{
this.name = name;
this.id = id;
}
int IComparable.CompareTo(object obj)
{
Employee emp2 = (Employee) obj;
if (this.id > emp2.id)
return(1);
if (this.id < emp2.id)
return(-1);
else
return(0);
}
public override string ToString()
{
return(String.Format("{0}:{1}", name, id));
}
string name;
int id;
}
|