bom*_*sen 2 c# sorting datetime
我必须有一个具有DateTime属性的对象列表,我需要对此列表进行排序,以便具有最接近日期的对象DateTime.Now在列表中排在第一位.
我尝试过以下方法:
nodes.Sort((x, y) => DateTime.Compare(
DateTime.Now,
DateTime.Parse(x.GetProperty("date").Value)));
Run Code Online (Sandbox Code Playgroud)
但这并没有返回正确的结果.
有谁知道这样做的好方法?:-)
您可以通过节点的时间和当前时间之间的绝对差来对它们进行排序.您可以TimeSpan使用Duration方法获取a的绝对时间:
DateTime now = DateTime.Now;
var ordered = nodes.OrderBy(n => (now - DateTime.Parse(n.GetProperty("date").Value)).Duration())
Run Code Online (Sandbox Code Playgroud)