我有一个父列表,其中包含多个相同类型的子列表,并且我需要在父列表中的每个列表上处理一个OrderByDescending函数。我知道这很令人困惑,因此请继续:

public class Message
{
    DateTime dateTime;
    int id;
}

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


还有另一个名为“ ConversationList”的列表,其中包含多个“ listOfMessages”列表。

这是我尝试过的:

    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列表。

我需要OrderByDescending每个列表。堂,你们有什么建议?

最佳答案

您自己给出了答案,您必须遍历每个列表并排序

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

10-08 07:02