2011-03-09 94 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類型。