2017-04-13 30 views
-2

所以我有一個不同的時隙數組,但我想從最早的時間點到最新的時間點進行排序,但是,我也想刪除數組中的所有時間值爲12:00的元素。如何排序不同時間的數組?

Appointment(0) = #10:45:00 AM# 
Appointment(1) = #12:00:00 AM# 'My actual has up 80 elements of different timeslots but I'm using 3 elements as an example 
Appointment(2) = #12:00:00 AM# 

有沒有人能幫我解決這個問題?

+0

這是作業嗎? (即,你是否必須使用數組,或者其他數據結構是否可以?) – Ryan

+0

這是我大學的編程任務,是的,我在基於數組的代碼中構造了主要算法,所以我不能使用任何其他數據結構 – Vbv123

+0

是否允許使用內置排序? – Ryan

回答

0

使用字符串數組是不是一個好主意,如果這是你用什麼只是使用日期時間的列表和排序方法。

+1

所有這些解析的東西是不必要的; '#10:45:00 AM#'已經是'Date'文字。所以這只是一種排序,並沒有按照要求去除12:00。 – Ryan

+0

@Ryan編輯刪除空白的原因,因爲我記得格式應該是:**#07:00:00上午#** – Mederic

0

在.net沒有用於從陣列的特定項目,但它可以是 「簡化」 有點與LINQ:

Dim Appointment = {#10:45#, #12AM#, #12AM#} 

Appointment = (From a In Appointment Where a <> #12AM# Order By a).ToArray 

Appointment = Appointment.Except({#12AM#}).ToArray 
Array.Sort(Appointment) 

的位更有效的替代方案可以使用泛型集合,如ListSortedSet代替:

Dim list = New List(Of Date) From {#10:45#, #12AM#} ' or Dim list = Appointment.ToList 
list.Add(#12AM#) 

list.RemoveAll(Function(a) a = #12AM#) 
list.Sort() 
+0

爲什麼你認爲使用一個專門的通用集合,如「List」是「一個更好的選擇」比LINQ? –

+0

@JimMischel我想這有點主觀,所以我將其改爲高效。更好的LINQ開銷更少,內存分配可能更少,對於新編程的人也許更容易 – Slai

相關問題