簡體   English   中英

如何對不同時間的數組進行排序?

[英]How do I sort an array of different times?

所以我有一個包含各種時間段的數組,但我想從最早到最新的時間進行排序,但是,我還想刪除數組中時間值為 12:00am 的任何元素。

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#

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

如果您使用字符串數組只是使用DateTime列表和Sort方法,那么使用字符串數組並不是一個好主意。

Dim list As List(of DateTime) = new List(of DateTime)
For Each val As String In Appointment
    list.Add(val.replace(" ",""))
Next
list.Sort(New Comparison(Of Date)(Function(x As Date, y As Date) y.CompareTo(x)))

.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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM