我试图编写一个控制台应用程序,根据开始日期按升序排序我的日期和时间,这是我要做的一个例子.
我的意见:
break Start1 = 15/02/12 12.30PM break End1= 15/02/12 01.30PM break Start2 = 15/02/12 11.00AM break End2= 15/02/12 12.00PM break Start3 = 15/02/12 12.00PM break End3= 15/02/12 01.00PM
我期待我的输出应该像:
break Start1 = 15/02/12 11.00AM break End1= 15/02/12 12.00PM break Start2 = 15/02/12 12.00PM break End2= 15/02/12 01.00PM break Start3 = 15/02/12 12.30PM break End3= 15/02/12 01.30PM
请建议我解决这个问题的最佳方法?
我建议您要配对原始的起始值和结束值,然后仅按开始日期对其进行排序.
首先,你必须配对Start和End.例如上课:
public class Break
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后,当您填充此类对象的集合时,只需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);
}
Run Code Online (Sandbox Code Playgroud)
编辑
要创建配对的日期时间对象,您可以使用以下方法:
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};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
587 次 |
| 最近记录: |