Вы можете добавить интерфейс IComparable, а затем отсортировать по определенному свойству. Например, если у вас есть коллекции товаров в магазине, возможно, вы хотите отсортировать их по цене, по категории и т. Д. Если вы хотите сделать заказ по названию, вот пример:
обратите внимание, как ArrayList сортируется по свойству name элементов. Если вы не добавите IComparable, то при использовании метода сортировки будет выдано сообщение об ошибке.
static void Main(string[] args)
{
ArrayList items = new ArrayList();
items.Add(new Item("book", 12.32));
items.Add(new Item("cd", 16.32));
items.Add(new Item("bed", 124.2));
items.Add(new Item("TV", 12.32));
items.Sort();
foreach (Item temp in items)
Console.WriteLine("Name:{0} Price:{1}", temp.name, temp.price);
Console.Read();
}
class Item: IComparable
{
public string name;
public double price;
public Item(string _name, double _price)
{
this.name = _name;
this.price = _price;
}
public int CompareTo(object obj)
{
//note that I use the name property I may use a different one
int temp = this.name.CompareTo(((Item)obj).name);
return temp;
}
}