我有未分类新闻的列表,其中一些具有优先级标记。我需要优先级项目浮动到列表的顶部,然后按日期对其余优先级进行排序。
因此,最终结果是新闻项列表,其中优先项显示在顶部,其余项按日期排序。
一定有比这更好的方法,但是我不确定最好的方法是什么-
foreach (var newsItem in newsItems)
{
if (newsItem.isPriority)
{
addToPriorityList(newsItem);
}
else
{
addToOtherList(newsItem);
}
}
foreach (var priorityItem in priorityList)
{
addtoMainList(priorityItem);
}
OtherList.SortbyDate();
foreach (var otherItem in otherList)
{
addtoMainList(otherItem);
}
有没有更优雅的方法可以做到这一点?我以为我可以使用LINQ,但是我对此很陌生,因此我对语法不满意。
最佳答案
尝试以下操作:(根据第一条评论中的建议进行编辑)
var sorteditems = newsItems.OrderByDescending(item => item.IsPriority)
.ThenBy(item => item.Date);