我有一个字段列表,我想按最新日期排序字段类型日期时间
foreach (var item in PList)
{
SchemaPermis schemaPermis = new SchemaPermis();
schemaPermis.PE_NUMERO = item.PE_NUMERO;
schemaPermis.PE_REFERENCE = item.PE_REFERENCE;
schemaPermis.PE_COUT_PREVU = item.PE_COUT_PREVU;
schemaPermis.PE_DATE_FIN = item.PE_DATE_FIN;
schemaPermis.PE_AUTRE_OBJET = item.PE_AUTRE_OBJET;
PermisList.Add(schemaPermis);
}
我需要能够按最新(日期时间)字段对集合列表进行排序。
答案 0 :(得分:3)
您要排序PList
还是PermisList
?但是,您可以使用LINQ的OrderBy
或OrderByDescending
:
var orderedPermaList = PermisList
.OrderByDescending(p => p.PE_DATE_FIN);
如果您需要List<SchemaPermis>
使用ToList()
。
但是最新的是什么意思?您是否要按此日期时间字段进行降序排序,或者是否要从列表中获取最新的SchemaPermis
对象?
如果您想要一个对象,请列出最新的SchemaPermis
:
SchemaPermis lastPerma = PermisList
.OrderByDescending(p => p.PE_DATE_FIN)
.First();
如果要修改原始列表而不是创建新列表(使用ToList
),可以使用overload of List.Sort
,需要乘以-1才能获得降序:
permaList.Sort((p1, p2) => -1 * p1.PE_DATE_FIN.CompareTo(p2.PE_DATE_FIN));
答案 1 :(得分:0)
您可以这样做:
var orderedList = PermisList.OrderBy(item => item.LatestDate);