如何通過其中一個對象屬性來排列對象的ArrayList?ArrayList通過屬性對象ArrayList保存?
0
A
回答
3
ArrayList有點不贊成。我們現在使用的通用List<T>類*
您可以按就地使用List<T>.Sort列表<牛逼>:
List<Person> persons = // ...
persons.Sort((a, b) => string.Compare(a.Name, b.Name));
或使用創建一個新的列表<牛逼> LINQ的Enumerable.OrderBy:
List<Person> persons = // ...
List<Person> sortedPersons = persons.OrderBy(p => p.Name).ToList();
(*除非您被.NET Framework 1.1困住)
2
正如dtb所解釋的那樣,除非您使用的是.NET 2.0的pre 2.0版本,否則您應該使用通用的List<T>
而非無類型的ArrayList
。
如果你真的想與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());
0
每當你要排序,你需要將它與它的特定元素比較的數組。 假設你有一個名爲客戶端和客戶端的數組列表,現在你想對它進行排序。你的代碼應該是
Client.Sort(a, b) => string.Compare(a.clientID.ToString(), b.clientID.ToString()));
相關問題
- 1. 如何通過其對象屬性對ArrayList進行排序?
- 2. 如何在Hibernate中通過ArrayList保存多個對象?
- 3. 通過ArrayList對象中的特定值對ArrayList排序?
- 4. Java:屬性上的對象排序Arraylist
- 5. java howto加載並保存ArrayList對象
- 6. Java - 通過TCP傳遞對象ArrayList
- 7. 通過Bundle傳遞ArrayList對象?
- 8. 對象的ArrayList通過級Java
- 9. ArrayList ArrayList中的對象
- 10. ArrayList對象
- 11. 如何從對象的ArrayList得到一個對象的屬性
- 12. 保存並讀取arraylist的arraylist類
- 13. Robospice存儲對象,通過Ormlite擴展數據庫中的ArrayList
- 14. 根據包含對象的屬性值從ArrayList過濾唯一對象
- 15. 如何通過ArrayList中獲得的ArrayList
- 16. ArrayList從其他ArrayList中刪除對象?
- 17. 保存對象屬性?
- 18. 通過元素屬性的Java ArrayList的過濾器
- 19. 通過ArrayList搜索
- 20. 通過的ArrayList JAVA
- 21. 通過arraylist循環
- 22. 商店,ArrayList對象
- 23. 結果對象arrayList
- 24. ArrayList,對象覆蓋
- 25. 根據對象屬性對Java ArrayList進行排序
- 26. 對具有兩個屬性的對象排序ArrayList
- 27. 按價格屬性對arraylist中的對象進行排序
- 28. 由多個屬性對ArrayList排序
- 29. ArrayList的對象和抽象
- 30. 通過對象屬性提取對象
嗨ive試過你的第一個建議,它告訴我我需要使用委託類型? :s – Tom 2010-05-24 21:29:08
我已經重新檢查它,它在這裏工作。你使用什麼框架版本?你能發佈你的代碼嗎?你得到了什麼確切的錯誤信息? – dtb 2010-05-24 21:36:52
他在談論ArrayList。 Lambdas要求他趕上3次更新和一大堆閱讀。失去的原因,真的。 – 2010-05-24 21:57:55