回答
您可以按排序順序列舉它:
IEnumerable<MyClass> result = list.OrderBy(element => element.CreateDate);
您還可以使用ToList()
轉換到一個新的列表並重新分配給原來的變量:
list = list.OrderBy(element => element.CreateDate).ToList();
這與排序原始列表並不完全相同,因爲如果任何人仍舊參照舊列表,他們將看不到新的排序。如果您確實想要對原始列表進行分類,那麼您需要使用List<T>.Sort
方法。
這裏有一個例子:
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, CreateDate = DateTime.Now.AddYears(-1) }, new Item { Name = "Other", Id = 1, CreateDate = DateTime.Now.AddYears(-2) } };
var result = myList.OrderBy(x => x.CreateDate);
}
}
public class Item
{
public string Name { get; set; }
public int Id { get; set; }
public DateTime CreateDate { get; set; }
}
}
「你有沒有試過用linq?」大聲笑 - 這就是問題所在! – Aaronaught
雅是一個錯字...大聲笑 – anthonyv
當然其他的答案與.OrderBy()
工作,但你不會,而讓你的源項目從IComparable
繼承並調用.Sort()
?
要排序現有列表:
list.Sort((x,y) => x.CreateDate.CompareTo(y.CreateDate));
也可以寫一個Sort
擴展方法,允許:
list.Sort(x => x.CreateDate);
例如:
public static class ListExt {
public static void Sort<TSource, TValue>(
this List<TSource> list,
Func<TSource, TValue> selector) {
if (list == null) throw new ArgumentNullException("list");
if (selector == null) throw new ArgumentNullException("selector");
var comparer = Comparer<TValue>.Default;
list.Sort((x,y) => comparer.Compare(selector(x), selector(y)));
}
}
+1顯示此 – Kubi
class T {
public DateTime CreatedDate { get; set; }
}
使用方法:
List<T> ts = new List<T>();
ts.Add(new T { CreatedDate = DateTime.Now });
ts.Add(new T { CreatedDate = DateTime.Now });
ts.Sort((x,y) => DateTime.Compare(x.CreatedDate, y.CreatedDate));
- 1. 如何使用Linq對列表順序進行排序?
- 2. 如何使用LINQ對列表進行排序?
- 3. 使用OrderBy對列表進行排序
- 4. 使用LINQ對ListBox ListItems進行排序?
- 5. 在類中對列表進行排序
- 6. 用一列對Linq列表進行排序
- 7. 如何使用.NET 2.0對列表進行排序(與LINQ OrderBy類似)
- 8. 使用Linq排序Person對象列表
- 9. 使用LINQ對包含列表和更新對象的對象進行排序
- 10. 使用Id屬性對類進行排序列表?
- 11. 使用冒泡排序對列表進行排序
- 12. 使用LINQ對列表中每個對象的字段進行排序
- 13. 對未確定的列數進行排序/排序(LINQ \ Entity Framework)
- 14. 通過使用linq比較兩個列表進行排序?
- 15. 如何使用子列表對列表進行排序
- 16. 使用jQuery對div類進行排序
- 17. 按兩列對列表進行排序
- 18. 在LINQ C中對字符串列表進行整數排序#
- 19. 使用jQuery對HTML列表進行升序和降序排序
- 20. 使用JQuery對錶進行排序
- 21. 如何使用linq對列表及其子女及其子女進行排序?
- 22. 使用列表進行排序
- 23. 使用OrderByDescending對對象列表進行排序
- 24. 如何使用動態對象對列表進行排序
- 25. 使用它的參數對對象列表進行排序
- 26. 使用LINQ進行任意排序
- 27. 使用C#的Linq庫進行排序
- 28. 使用模數按字母順序對列表進行排序
- 29. 使用動態LINQ對複雜對象進行排序
- 30. 如何在C#中使用LINQ列表內部列表進行排序
你的意思是由酒店CREATEDATE這是DateTime類型的? –
是我的首席財產 – Kubi