Как заказать ArrayList объектов одним из атрибутов объектов?Заказать ArrayList по объекту атрибута, который хранится ArrayList?
ответ
ArrayList несколько устарел. Мы используем общий List<T> класс в настоящее время *
Вы можете отсортировать список <T> на месте с помощью List<T>.Sort:.
List<Person> persons = // ...
persons.Sort((a, b) => string.Compare(a.Name, b.Name));
или создать новый список <T> с помощью LINQ-х Enumerable.OrderBy:
List<Person> persons = // ...
List<Person> sortedPersons = persons.OrderBy(p => p.Name).ToList();
(* Если вы не застряли в .NET Framework 1.1)
Как объяснено в dtb, вам, вероятно, следует использовать общий List<T>
, чем нетипизированный ArrayList
, если вы не используете версию 2.0 до 2.0.
Если вы действительно хотите сделать это с ArrayList
, есть два способа сделать это:
если элементы коллекции реализации
IComparable
, просто использовать методSort
без аргументов:arrayList.Sort();
в противном случае, вам нужно создать собственный компаратор путем реализации интерфейса
IComparer
:public class PersonComparer : IComparer { public int Compare(object a, object b) { Person pa = a as Person; Person pb = b as Person; if (pa == pb) return 0; if (pa == null) return -1; if (pb == null) return 1; return string.Compare(pa.Name, pb.Name); } } ... arrayList.Sort(new PersonComparer());
Всякий раз, когда вы хотите отсортировать массив, вам необходимо сравнить его с определенным элементом. Предположим, у вас есть список массивов, называемый Клиент, а клиент имеет идентификатор клиента Теперь вы хотите его отсортировать. Ваш код должен быть
Client.Sort(a, b) => string.Compare(a.clientID.ToString(), b.clientID.ToString()));
- 1. ArrayList <String> заказать по названию
- 2. Объект String объекту ArrayList
- 3. заказать arraylist на основе значений
- 4. Значение arraylist хранится в meny
- 5. Хранение arraylist в объекте, который является частью этого arraylist
- 6. Прочтите файл csv объекту arraylist
- 7. Как получить доступ к атрибуту объекта, который хранится в arraylist?
- 8. Вызов методов объекта, который уже хранится в ArrayList
- 9. Как получить доступ к arraylist, принадлежащему к объекту внутри arraylist
- 10. Сортировать по первой записи ArrayList в ArrayList
- 11. Сравнить и заказать объекты в arraylist, java
- 12. Вторая запись не хранится в arraylist
- 13. Сортировка ArrayList по нескольким свойствам
- 14. Заказать ArrayList на основе множественного соединения
- 15. Сортировка списка ArrayList по дате в ArrayList
- 16. Сортировать 2d ArrayList по длине суб ArrayList
- 17. Хотите отсортировать ArrayList на основе значения атрибута
- 18. Сохраняет ли ArrayList ArrayList ссылку?
- 19. Как скопировать ArrayList, на который нельзя повлиять исходные изменения ArrayList?
- 20. Сумма ArrayList по методу
- 21. Создание ArrayList из ArrayList, имеющего один дополнительный элемент по сравнению с другим ArrayList из ArrayList
- 22. Добавление ArrayList в ArrayList
- 23. Arraylist arraylist ... в C#
- 24. Merge Сортировать по ArrayList
- 25. Сортировка объекта ArrayList по значению атрибута в Java
- 26. Circular ArrayList (расширение ArrayList)
- 27. Изменение ArrayList в ArrayList
- 28. Java - Листинг ArrayList <Object[]> Объекту [] []?
- 29. Java добавляет ArrayList к существующему объекту
- 30. фильтр ArrayList, который имеет аналогичные данные
Привет, я попробовал ваше первое предложение и сказал, что мне нужно использовать тип делегата? : s – Tom
Я дважды проверял его, и он работает здесь. Какую версию фреймворка вы используете? Можете ли вы разместить свой код? Какое точное сообщение об ошибке вы получаете? – dtb
Он говорит о ArrayList. Лямбдас требует, чтобы он догнал 3 обновления и целую кучу чтения. Потерянная причина, действительно. –