訂購對象列表
回答
當有內置的方法來做到這一點時,Linq是矯枉過正的。
如果你的意思是一個數組,只需使用Array.Sort
:
Array.Sort(items, (x, y) => x.Name.CompareTo(y.Name));
如果你說的是List<T>
,使用Sort
功能有:
items.Sort((x, y) => x.Name.CompareTo(y.Name));
+1使用本地列表支持排序,而不是爆發到Linq(並不是Linq有任何問題,但在這種情況下,它是過度殺傷恕我直言,也沒有給予任何更明確的目的) – 2010-02-16 09:38:15
對於使用內置的支持是正確的,但正如其他人所說,它沒有處理空的情況下......現在你可以改變上述來處理這些情況,但是代碼不再那麼幹淨。那麼它是一個簡單的orderby和上面的空選擇之間的選擇......我在這種情況下哪個更好...... – anthonyv 2010-02-16 09:44:31
@anthonyv - 所有的公平點。是的 - 一旦您將空檢查放入,它確實會失去一些簡潔性。仍然 - 很高興看到人們在桌子上放置了幾種不同的解決方案。 – 2010-02-16 10:12:31
您是否嘗試過使用linq?
using System.Collections.Generic;
using System.Linq;
namespace Demo
{
public class Test
{
public void SortTest()
{
var myList = new List<Item> { new Item { Name = "Test", Id = 1 }, new Item { Name = "Other", Id = 1 } };
var result = myList.OrderBy(x => x.Name);
}
}
public class Item
{
public string Name { get; set; }
public int Id { get; set; }
}
}
如果你正在處理這些對象的列表,最簡單的方法是向排序方法提供比較:
var list = new List<MyObject>();
...
list.Sort((item1, item2) => item1.Name.CompareTo(item2.Name));
這是很好,很簡單,因爲字符串執行IComparable<string>
。另一種方法是讓你在你的類實現IComparable<MyObject>
,然後你可以只調用list.Sort()
的List<T>
類的Sort
方法有一個重載接受一個自定義比較:
list.Sort((x,y) => x.Name.CompareTo(y.Name));
- 1. 訂購admin.ModelAdmin對象
- 2. ngOptions訂購和陣列選擇對象
- 3. 如何訂購一系列Doctrine對象?
- 4. ios NSFetchRequest,訂購子對象
- 5. Monogame中的訂購對象
- 6. 用lodash對象訂購
- 7. 訂購Django隨機對象
- 8. LINQ:訂購子對象
- 9. 基於對象列表中屬性的訂購地圖
- 10. 選擇或訂購從通用對象列表C#
- 11. C#訂購列表<字典<串,對象>>
- 12. Flask-SQLAlchemy - 如何訂購查詢對象列表?
- 13. 在列表中訂購
- 14. 在django訂購列表
- 15. 列表<T>訂購
- 16. 訂購C#中的列表
- 17. 訂購地址列表
- 18. 訂購日期列表
- 19. 嵌入列表訂購
- 20. 訂購INT對
- 21. 隊列訂購
- 22. 訂購兩列
- 23. 訂購兩列
- 24. 根據部分訂購對象
- 25. 在子對象的屬性上訂購
- 26. 爲Northwind Access數據庫訂購對象
- 27. 訂購域對象中的設置
- 28. SDN4 - 無法從庫中訂購對象
- 29. 訂購動物園對象 - 順序
- 30. TypeError:'模塊'對象不可以訂購
一個比特的信息在對象上將是有益的。 – 2010-02-16 09:26:19