簡體   English   中英

如何對列表進行排序<T>在 C#/.net 中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM