我在下面有代码,可以为每个事件获取starttime
。如何验证该时间现在是否按升序排列?
List<dynamic> list= new List<dynamic>();
foreach (var item in jsonData.x[0].y)
{
list.Add(item.StartTime.Value);
Console.WriteLine(item.AdvertisedStartTime);
}
现在我想根据时间验证List
是否按升序排列。
UTC Time = 2017-01-09T02:05:00Z
以下
var list1 = list.OrderBy(x => x.TimeOfDay).ToList();
它将按TimeofDay
对列表进行排序,但实际上我想验证list
是否按升序排列。
我应该如何处理这个问题?
答案 0 :(得分:0)
list.OrderBy()使用asc命令,list.OrderByDescending()使用desc命令。如果要验证,可以使用DateTime方法CompareTo(),代码片段如下。
DateTime dt1 = DateTime.Now;
DateTime dt2=DateTime.Now+TimeSpan.FromDays(1);
var value = dt2.CompareTo(dt1);
value may be -1,0,1, means earlier, same, later
答案 1 :(得分:0)
您可以使用foreach
循环来确保DateTime
中每个前进List
实例的值大于或等于前一个{的值{1}}中的{1}}实例。
DateTime
循环按顺序遍历List
中的每个实例,从foreach
中的第一项开始,到List
的最后一项结束。
以下是Microsoft关于List
循环的官方文档:
https://msdn.microsoft.com/en-us/library/ttw7t8t6.aspx
在List
循环内部,我们使用foreach
方法来比较foreach
个实例。在C#中,CompareTo
方法可用于比较相同类型的两个实例。
如果第一个实例位于DateTime
内的实例之前,则返回CompareTo
。如果第一个实例在CompareTo
内的实例具有相同的位置(或在此情况下具有相同的-1
值),则返回DateTime
。最后,如果第一个实例跟随CompareTo
内的实例,则返回0
。
以下是Microsoft关于CompareTo
的官方文档:
https://msdn.microsoft.com/en-us/library/4ah99705
1