我建议您将原始开始值和结束值配对,然后仅按开始日期排序。
首先,您必须将Start
and End
。例如。与班级:
public class Break
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
}
然后,当您填充此类对象的集合时,只需按以下顺序对其进行排序即可Start
使用 LINQ。
var breaks = new List<Break>()
{
new Break()
{
Start = new DateTime(2012,2,15,12,30,0),
End = new DateTime(2012,2,15,13,30,0)
... /// etc.
}
};
var ordered = breaks.OrderBy(s => s.Start);
foreach (var ord in ordered)
{
System.Console.WriteLine(ord.Start);
System.Console.WriteLine(ord.End);
}
EDIT
要创建配对的日期时间对象,您可以使用以下方法:
public static Break ConvertToBreak(string startDate, string endDate, object gmtOffset)
{
var dtStart = UnixTimeConverter(startDate, System.Convert.ToDecimal(gmtOffset));
var dtEnd = UnixTimeConverter(endDate, System.Convert.ToDecimal(gmtOffset));
return new Break{Start = dtStart, End = dtEnd};
}