| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > SortedList c повторяющимся ключом |
| Автор: NilovSerge 4.2.2008, 18:46 |
| Всем привет! Есть класс SortedList - для сортировки массива по полю-ключу и значению обьекту... Но он не работает, если ключ не уникален(например, отсортировать файлы каталога по размеру - могут быть с одинаковым размером) Чем это проще побороть(если не считать сортировать вручную...) ? Заранее спасибо! |
| Автор: mr.DUDA 4.2.2008, 20:19 |
| Можно использовать обычный List<> с элементами, реализующими интерфейс IComparable, в методе CompareTo сравнивать по своему алгоритму и возвращать -1, 0 или 1 в зависимости от результата сравнения 2-х элементов. Для сортировки достаточно вызвать метод Sort. |
| Автор: NilovSerge 7.2.2008, 14:54 |
| Сделал как писал mr.DUDA Я не могу передать доп параметр в Array.Sort(TypedArray) ? Или только в типе TypedArray сделать поле-параметр и перед вызовом Array.Sort(TypedArray) менять его для всех элементов TypedArray? |
| Автор: tol05 7.2.2008, 15:41 |
| ну так используй метод Sort, принимающий наследника IComparer (или IComparer<T>) создавай свой класс, реализующий IComparer и в нем уже проверяй по любому полю. Примеры есть в msdn |