做一个' OrderByDescending'在父列表中的每个子列表上

时间:2015-05-23 17:05:14

标签: c# .net linq

我有一个父列表,其中包含多个相同类型的子列表,我需要在父列表中的每个列表上处理OrderByDescending函数。我知道这很令人困惑,所以你去吧:

public class Message
{
    DateTime dateTime;
    int id;
}

List<Message> listOfMessages; //Contains a list of Messages

还有一个名为&#39; ConversationList&#39;其中包含多个“listOfMessages”&#39;列表。

这是我尝试的内容:

    var newList = listOfMessages.OrderByDescending(x => x.dateTime).ToList();
    //This would return a list of messages that are ordered by datetime
    //However listOfMessages is ONE item from ConversationList
    //Therefore I need to do OrderByDescending on each 'listOfMessages' in the ConversationList

listOfMessages包含Message类型的对象,而ConversationList包含多个listOfMessages LISTS。

我需要OrderByDescending每个列表。 Dang,你的建议是什么?

1 个答案:

答案 0 :(得分:3)

你自己给出了答案,你必须遍历每个列表并订购它

for(int i = 0; i <  ConversationList.Count; i++)
{
    var listOfMessages = ConversationList[i];
    ConversationList[i] = listOfMessages.OrderByDescending(x => x.dateTime).ToList();
}

使用Linq,解决方案可能如下所示

ConversationList = ConversationList.Select(listOfMessages => listOfMessages.OrderByDescending(x => x.dateTime).ToList()).ToList();