2011-03-09 95 views
0

给定范围datetime(开始和结束时间)的列表,我如何按持续时间(例如最大到最小持续时间)对它们进行排序?排序日期时间范围

+0

列表如何构建? – BoltClock 2011-03-09 09:10:02

+0

@BoltClock每个项目都有开始和结束时间。 – 2011-03-09 09:14:45

回答

1

假设列表中的每个对象的类型是日期时间,那么你可以使用属性对它们进行排序的。

http://msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx

如果他们是范围,你可以减去的开始时间从结束时间蜱蜱和使用结果值进行排序。

例如:

DateTime Start = YourStartValue; 
DateTime End = YourEndValue; 
long Range = End.Ticks - Start.Ticks; 

这会给你一个“对号”数量代表在你的射程时间的长短,数字越小,持续时间越短。

对每个范围重复此操作,然后您可以对结果进行排序。

0

假设恩B的日期时间,你可以使用一个时间跨度这样

long sort = (A - B).Ticks; 
0

您需要保存在第三个属性的时间,然后在第三个属性排序适用。

如果从数据库填充列表并将其保存在DataTable中。然后,您可以添加Expression based Column,然后对基于表达式的列上的数据表进行排序。

如果您有一个类的对象的通用列表。那么你的财产应该看起来像这样。

public long Duration { 
    get { 
     return (endDate - startDate).Ticks; 
    } 
} 

我想你已经开始和结束都是DataTime类型。