-1

日付ごとに昇順または降順で並べ替える必要がある日付オブジェクトを含む配列があります。つまり、最新のものを最初に並べます(日付にはタイムスタンプを含めることもできます)。

4

1 に答える 1

3

Array.Sort(Of T)カスタムIComparer(Of T)デリゲートで動作するはずです:

Dim dates = {Date.Now, Date.Now.AddDays(1), Date.Now.AddDays(2)}
Array.Sort(Of Date)(dates, Function(d1, d2) d2.CompareTo(d1))

日付を並べ替えましたが、日付オブジェクトをメンバーとして含むオブジェクトの配列があります。日付オブジェクトを含むオブジェクトの配列を並べ替えるにはどうすればよいですか?

カスタム デリゲートを再度使用できます(オブジェクトがクラスであるとSort仮定します)。Person

Array.Sort(Of Person)(persons, Function(p1, p2) p2.BirthDate.CompareTo(p1.BirthDate))

しかし、最も読みやすい方法は、Linq を使用することです。

Dim orderedPersons = From p In persons
                     Order By p.BirthDate Descending
For Each p In orderedPersons
    Console.WriteLine("{0}'s birtdate is at {1}", p.Name, p.BirthDate)
Next

クエリからのリストが必要な場合は を使用し.ToList()、必要な場合は をarray使用します.ToArray()

于 2013-03-13T12:38:28.500 に答える