У меня есть список объектов, которые мне нужно отсортировать по объекту property1, и мне нужно снова отсортировать результирующий список с помощью свойства объекта2 без потери группировки, сделанной при первой сортировке .... для ex: OBJ имеет 2 имя свойства и расположение мне нужно иметь окончательный список объектов, которые были отсортированы с регионом и объектами того же региона должны быть отсортированы по имени ...сортировать список в C#
ответ
(Предполагая, что вы не LINQ доступны для вас, что делает это тривиально.)
Если вы посмотрите в MiscUtil, вы найдете два полезных классов: ProjectionComparer
и LinkedComparer
(IIRC).
ProjectionComparer
в основном реализует концепцию «заказ по» LINQ - вы указываете, как преобразовать исходный элемент в значение ключа, а компаратор будет заказывать эти значения ключей.
LinkedComparer
принимает два сравнения и возвращает новый компаратор, который сначала использует «первичный» сравнитель, а «вторичный» сравнитель, если значения равны по отношению к первичному.
Создайте два проекционных компаратора (по одному для каждого свойства), а затем связанный компаратор с двумя из них, затем передайте это List<T>.Sort
. Дайте мне знать, если вам нужен полный пример кода, но это было бы что-то подобное (с использованием C# 3):
var comparer = new LinkedComparer<Foo>
(ProjectionComparer<Foo>.Create(x => x.FirstProperty),
ProjectionComparer<Foo>.Create(x => x.SecondProperty));
(В C# 2 можно использовать анонимные методы, они просто немного более долго-).
В списке есть метод Сортировка, который принимает делегат сравнения в качестве аргумента. Есть также перегрузки, где вы можете пройти в своем собственном сравнении.
Итак, вы можете написать класс, который реализует IComparer. Затем, в реализации этого класса, вы пишете код, в котором вы сравниваете 2 объекта с требуемыми свойствами.
- 1. вставка сортировать связанный список C++
- 2. Сортировать список из списка C#
- 3. сортировать список списка объектов C#
- 4. C# сортировать список пользовательского класса
- 5. C# Список Сортировать по Список внутренних свойств
- 6. Как слить-сортировать связанный список в C++?
- 7. Как сортировать связанный список в C?
- 8. C# сортировать список в зависимости от функции
- 9. C++ сортировать связанный список в порядке возрастания
- 10. Численно сортировать список TreeViewItems в C#
- 11. Сортировать список строковых массивов в C#
- 12. Сортировать список список Эрл
- 13. сортировать список, используя список сравнения
- 14. Prolog: сортировать список в списке
- 15. Сортировать список подсписков в сюсюкать
- 16. Как правильно сортировать список ссылок C
- 17. bubble сортировать связанный список, swapping указатели. C
- 18. Как сортировать список C# на основе свойства?
- 19. Сортировать список data.frames
- 20. Python: сортировать список списков
- 21. Как CompareTo сортировать список?
- 22. Временно сортировать список WP8
- 23. Сортировать список кортежей с ноны и одновременно сортировать список, связанный
- 24. Как сортировать список в общем
- 25. сортировать список контактов в андроиде
- 26. bubble сортировать связанный список не сортировать
- 27. Сортировать список с номерами
- 28. сортировать список проценты
- 29. Как сортировать список массивов
- 30. сортировать список строк (housenumbers)