0

「Orderby」を使用して、VB.Netで最も早い日付のリストを注文しようとしています。

変数とメソッドは次のとおりです。

Dim SetupStart As DateTime 
Dim SetupTimeList As New List(Of Date)

'メソッドp.ReadFieldDateTimeは、SQLデータベースに接続し、フィールドSetupTimeを読み取るために使用されます。

SetupStart = p.ReadFieldDateTime("Orders", "Setup Time", record)
SetupTimeList.Add(SetupStart)

Dim SetupTimeListeOrdered = from SetupTime In SetupTimeList
Order By SetupTime

このコードスニペットが意味をなすものであることを願っています。意味がない場合は、誰かがこのリストをイヤリストの日付の昇順で並べ替える方法を教えていただければ幸いです。

ご協力いただきありがとうございます!

4

2 に答える 2

0

次のようなOrderBy(...)拡張機能を使用します。IEnumerable

Dim SetupTimeListeOrdered = SetupTimeList.OrderBy(Function(d) d)

VB.NET構文についてはよくわかりませんが、申し訳ありません。

C#の場合: `List SetupTimeListOrdered = SetupTimelist.OrderBy(d => d);

于 2012-06-06T15:51:55.120 に答える
0

次のコードをテストすることで、うまく機能します。日付値を取得するために使用しているメソッドについてはわかりません。

Sub Main(args As String())Dim dtList As List(Of Date)= CreateListofDateTime()

    Dim NonOrderedList = From t In dtList

    Console.WriteLine("Non Ordered List")
    For Each item As DateTime In NonOrderedList
        Console.WriteLine(item.ToString())
    Next

    Dim OrderedList = From t In dtList Order By t
    Console.WriteLine("Ordered List")
    For Each item As DateTime In OrderedList
        Console.WriteLine(item.ToString())
    Next
End Sub

Function CreateListofDateTime() As List(Of DateTime)
    Dim dtValue As New DateTime()
    Dim ldtListTosendBack As New List(Of Date)()
    dtValue = DateTime.Now
    ldtListTosendBack.Add(dtValue)

    dtValue = DateTime.Now.AddDays(5)
    ldtListTosendBack.Add(dtValue)
    dtValue = DateTime.Now.AddDays(-5)
    ldtListTosendBack.Add(dtValue)
    dtValue = DateTime.Now.AddDays(-9)
    ldtListTosendBack.Add(dtValue)
    dtValue = DateTime.Now.AddDays(-10)
    ldtListTosendBack.Add(dtValue)
    Return ldtListTosendBack
End Function
于 2012-06-06T16:24:11.300 に答える