订单列表,其中日期为字符串

时间:2013-10-20 12:27:52

标签: c# sorting

我有三个班级:

public class QData
{ 
    public List<RData> Items { get; set; }
    public List<QDay> Dates { get; set; } 
} 
public class QDay 
{
    public string Date { get; set; }
    public List<RData> Details { get; set; } 
}

public class RData
{ 
    public string Name { get; set; }
    public int Quantity { get; set; }
}

我的清单是

List<QData> myList;

按日期排序列表(* QData类型)的最有效方法是什么,日期是字符串。

3 个答案:

答案 0 :(得分:0)

以下是使用“日期”列表中的第一个日期排序的示例。我无法想象为什么你会想要这样做但是在这里。我怀疑让日期成为一个列表是一个错误,事实上你只想在那里有一个约会。

var sortedList = MyList.OrderBy(element => DateTime.Parse(element.Dates.First().Date));

我认为这就是你真正想要的......只有一个清单:

public class QData
{ 
    RData itemInfo { get; set;}
    QDay dateInfo { get; set; }
}

然后你的排序看起来像这样:

var sortedList = MyList.OrderBy(element => DateTime.Parse(element.dateInfo.Date));

答案 1 :(得分:0)

也许这就是你需要的:

var result = myList.Select(qData => new QData()
    {
        Items = qData.Items,
        Dates = qData.Dates.OrderBy(qDay => DateTime.Parse(qDay.Date)).ToList();
    }).ToList();

可能会修改DateTime.Parse调用以适应qDay.Date属性中的日期格式。

答案 2 :(得分:-1)

 var temp = (from e in myList.Dates
                    orderby DateTime.Parse(e.Date)
                    select e
                   ).ToList();
  myList.Dates = temp;