如何对列表进行排序<;T>;在c#/.net中

如何对列表进行排序<;T>;在c#/.net中,c#,list,sorting,C#,List,Sorting,我有一个类PropertyDetails: public class PropertyDetails { public int Sequence { get; set; } public int Length { get; set; } public string Type { get; set; } } 我正在创建属性详细信息的列表 List<PropertyDetails> propertyDetailsList=new List<Pr

我有一个类
PropertyDetails

public class PropertyDetails
{

     public int Sequence { get; set; }

     public int Length { get; set; }

     public string Type { get; set; }
}
我正在创建
属性详细信息的列表

List<PropertyDetails> propertyDetailsList=new List<PropertyDetails>();
List propertydeailslist=new List();
我想按
propertydeails.Sequence
对列表进行排序


Linq解决方案是受欢迎的。

永远不要在C#中使用非泛型集合,因为您可以使用泛型。有很多理由只使用通用集合(非常特殊的情况除外)

有关更多信息,请参见此问题:


因此,您可以使用
List
(我认为它公开了一个
Sort()
方法)或
SortedList
,如果您想对现有列表进行排序,那么您可以使用以下方法:


(如果您不需要将结果作为具体的
列表
,那么您可以省略最后的
ToList
调用。)

使用linq,您可以创建一个新的排序列表:

list.OrderBy(x => x.Sequence).ToList();
如果要对当前列表进行排序,可以使用比较器:

list.Sort((details1, details2) => details1.Sequence.CompareTo(details2.Sequence);

List propertyDetailsList=新列表();相关:实际上不是对列表进行排序,而是创建一个新的IEnumerable,其中包含已排序的项。。。我仍然认为这是所要求的解决方案,它不是一个“分类列表”。它是一个“IOrderableEnumerable”。它需要一个.ToList()来创建一个实际的“sortedList”。因此,使用“var”,sortedList只是变量名。这不是“就地”,效率较低,因为它必须创建一个全新的集合。
List<PropertyDetails> propertyDetailsList = ...
var sorted = propertyDetailsList.OrderBy(x => x.Sequence).ToList();
list.OrderBy(x => x.Sequence).ToList();
list.Sort((details1, details2) => details1.Sequence.CompareTo(details2.Sequence);