2013-03-13 4 views
-1

У меня есть массив, который имеет объекты даты, которые мне нужно сортировать по возрастанию или по убыванию в соответствии с датой i.e последней первой (дата также может содержать метку времени).Дата Время Массив Сортировка

+0

Извините за ошибку, мне нужен был ответ на VB.net, поскольку я новичок на vb.net. – B2Mobile

ответ

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

Я отсортировали date.But у меня есть массив объектов, содержащий объект дату как member.So как я отсортировать массив объектов, который содержит объект даты?

Вы можете снова использовать пользовательские 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().

+0

Спасибо за быстрый ответ, я отсортировал дату. Но у меня есть массив с объектами, который содержит объект даты в качестве члена. Так как я сортирую массив объектов, содержащих объект даты? – B2Mobile

+0

@ B2Mobile: Отредактирован мой ответ. –

+0

Большое спасибо @Tim Schmelter.It работал как шарм. – B2Mobile