Console.WriteLine (" " + i);
}
Console.WriteLine ();
// Отсортировать список, используя интерфейс IComparer. inv.Sort(comp);
Console.WriteLine("Перечень товарных запасов после сортировки:"); foreach(Inventory i in inv) {
Console.WriteLine (" " + i);
}
}
}
Применение класса StringComparer
В простых примерах из этой главы указывать явно способ сравнения символьных строк совсем не обязательно. Но это может потребоваться в тех случаях, когда строки сохраняются в отсортированной коллекции или когда строки ищутся либо сортируются в коллекции. Так, если строки должны быть отсортированы с учетом настроек одной культурной среды, а затем их приходится искать с учетом настроек другой культурной среды, то во избежание ошибок, вероятнее всего, потребуется указать способ сравнения символьных строк. Аналогичная ситуация возникает и при хешировании коллекции. Для подобных (и других) случаев в конструкторах классов некоторых коллекций предусмотрена поддержка параметра типаIComparer.С целью явно указать способ сравнения символьных строк этому параметру передается в качестве аргумента экземпляр объекта классаStringComparer.
КлассStringComparerбыл подробно описан в главе 21 при рассмотрении вопросов сортировки и поиска в массивах. В этом классе реализуются интерфейсыIComparer, IComparer
В качестве примера ниже показано, как коллекция типаSortedList
SortedList
new SortedList
Доступ к коллекции с помощью перечислителя