[英]how to sort List<T> in c# / .net
我有一個類PropertyDetails
:
public class PropertyDetails
{
public int Sequence { get; set; }
public int Length { get; set; }
public string Type { get; set; }
}
我正在創建一個PropertyDetails
列表作為
List<PropertyDetails> propertyDetailsList=new List<PropertyDetails>();
我想按PropertyDetails.Sequence
對這個列表進行排序。
歡迎使用 Linq 解決方案。
如果要就地對現有列表進行排序,則可以使用Sort
方法:
List<PropertyDetails> propertyDetailsList = ...
propertyDetailsList.Sort((x, y) => x.Sequence.CompareTo(y.Sequence));
如果要創建列表的新排序副本,則可以使用 LINQ 的OrderBy
方法:
List<PropertyDetails> propertyDetailsList = ...
var sorted = propertyDetailsList.OrderBy(x => x.Sequence).ToList();
(如果您不需要將結果作為具體的List<T>
那么您可以省略最終的ToList
調用。)
當您可以使用泛型代替時,永遠不要在 C# 中使用非泛型集合。 僅使用泛型集合的原因有很多(非常特殊的情況除外)。
有關更多信息,請參閱此問題: 您何時不使用通用集合?
所以你可以使用List<PropertyDetails>
(我相信它公開了一個Sort()
方法)或SortedList<,>
。
var sortedList = propertyDetailsList.OrderBy(pd => pd.Sequence);
使用 linq 您可以創建一個新的排序列表:
list.OrderBy(x => x.Sequence).ToList();
如果要對當前列表進行排序,可以使用比較器:
list.Sort((details1, details2) => details1.Sequence.CompareTo(details2.Sequence);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.