我有一个新闻未分类的项目列表,其中一些有优先级标志。我需要优先级项浮动到列表顶部,然后按日期对其余项进行排序。
因此,最终结果是一个新闻项目列表,其中优先项目显示在顶部,其余部分按日期排序。
必须有一个比这更好的方法,但我不确定最好的方法是什么 -
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,但我对它很新,所以我对语法不满意。
答案 0 :(得分:3)
试试这个:(根据第1条评论中的建议编辑)
var sorteditems = newsItems.OrderByDescending(item => item.IsPriority)
.ThenBy(item => item.Date);
答案 1 :(得分:2)
你应该可以这样做:
newsItems.OrderBy(item => item.Priority).ThenBy(item => item.Date);