我有未分类新闻的列表,其中一些具有优先级标记。我需要优先级项目浮动到列表的顶部,然后按日期对其余优先级进行排序。

因此,最终结果是新闻项列表,其中优先项显示在顶部,其余项按日期排序。

一定有比这更好的方法,但是我不确定最好的方法是什么-

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);

08-27 01:37