我有三个班级:
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类型)的最有效方法是什么,日期是字符串。
答案 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;