我有一节课PropertyDetails
:
public class PropertyDetails
{
public int Sequence { get; set; }
public int Length { get; set; }
public string Type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在创建一个PropertyDetails
as 列表
List<PropertyDetails> propertyDetailsList=new List<PropertyDetails>();
Run Code Online (Sandbox Code Playgroud)
我想按此排序PropertyDetails.Sequence
.
Linq解决方案是受欢迎的.
Luk*_*keH 30
如果要对现有列表进行现场排序,则可以使用以下Sort
方法:
List<PropertyDetails> propertyDetailsList = ...
propertyDetailsList.Sort((x, y) => x.Sequence.CompareTo(y.Sequence));
Run Code Online (Sandbox Code Playgroud)
如果要创建列表的新的已排序副本,则可以使用LINQ的OrderBy
方法:
List<PropertyDetails> propertyDetailsList = ...
var sorted = propertyDetailsList.OrderBy(x => x.Sequence).ToList();
Run Code Online (Sandbox Code Playgroud)
(如果您不需要将结果作为具体结果,List<T>
则可以省略最终ToList
调用.)
使用linq你可以使用类似于:
list.OrderBy(x => x.Sequence).toList();
Run Code Online (Sandbox Code Playgroud)
但我更喜欢使用自定义比较器.
当可以使用泛型时,切勿在 C# 中使用非泛型集合。仅使用通用集合有很多原因(非常特殊的情况除外)。
有关详细信息,请参阅此问题: 您什么时候不使用通用集合?
所以你可以使用List<PropertyDetails>
(我相信它公开了一个Sort()
方法)或SortedList<,>
.