Использование интерфейса IComparer

  • docx
  • 18.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002178.docx

Использование интерфейса IComparer

Интерфейс IComparer определяет метод сортировки, у которого ссыл- ка на объект, реализующий метод сравнения, используется в качестве параметра. В интерфейсе IComparer определен только один метод Com- pare():

 

int Compare (object obj1, object obj2)

 

Метод Compare() сравнивает объект obj1 с объектом obj2.     Воз- вращаемое значение то же.

 

// Использование интерфейса Icomparer.

 

using System;

using System.Collections;

 

class CompInv : IComparer

{

public int Compare (object obj1, object obj2)

{

return ((Inventory)obj1).name.CompareTo(((Inventory)obj2).name);

}

}

 

class Inventory

{

public string     name;

double cost;

int                    onhand;

 

public Inventory(string n, double c, int h)

{

name = n; cost = c; onhand = h;

}

 

public override string ToString()

{

return String.Format(" {0,-16}Цена: {1,8:C} В наличии: {2}",

name,           cost,              onhand);

}

}

 

class MailList


{

public static void Main()

{

ArrayList inv = new ArrayList();

 

// Добавляем элементы в список.

inv.Add(new Inventory("Плоскогубцы", 5.95, 3));

inv.Add(new Inventory("Гаечные ключи", 8.29, 2));

inv.Add(new Inventory("Молотки", 3.50, 4));

 

Console.WriteLine("Информация до сортировки:"); foreach (Inventory i in inv)

Console.WriteLine(" " + i); Console.WriteLine();

 

// Сортируем список, используя интерфейс IComparer. inv.Sort(new CompInv());

 

Console.WriteLine("Информация после сортировки:"); foreach (Inventory i in inv)

Console.WriteLine(" " + i);

}

}