2016-10-02 1 views
1

Моей коллекцииКак получить последний DATETIME в моей коллекции

"10/01/2016 4:00 PM" 
"10/01/2016 11:00 AM" 
"10/01/2016 12:00 PM" 

Я хочу получить: «10/01/2016 4:00 PM», так как это текущее время и позднее на всех. Однако, когда я использую функцию .Max(), она возвращает значение «10/01/2016 12:00 PM», что означает, что он просто ищет самое высокое значение HOURS «12».

+0

Спасибо за редактирование. Я здесь новенький. –

+1

, пожалуйста, напишите, как вы инициализируете свою коллекцию, потому что если это 'DateTime', она должна работать нормально –

+0

Нет, сэр. Когда я сортирую по убыванию, он сортируется как от самого высокого до самого низкого, чего я не хочу. Сортировка, которую я хочу, должна быть такой: "10/01/2016 16:00" "10/01/2016 12:00" "10/01/2016 11:00 AM" или используя. Функция Max() Я хочу получить 4:00 PM –

ответ

1

Вы сравнения string значения.

Вы должны преобразовать вашу коллекцию строк в коллекцию из DateTime

var dateTimeCollection = stringCollection.Select(value => DateTime.Parse(value)); 

Затем используйте Max методу

var maxDate = dateTimeCollection.Max(); 
+0

sry это правильный :). Однако верно ли это? collection.Max (Value => DateTime.Parse (Value.Date)); ? –

0

Какую коллекцию вы используете? Я testet его с помощью следующего кода

static void Main(string[] args) 
     { 
      List<DateTime> list = new List<DateTime>() 
      { 
       DateTime.Parse("10/01/2016 4:00 PM") , 
       DateTime.Parse("10/01/2016 11:00 AM"), 
       DateTime.Parse("10/01/2016 12:00 PM") 
      }; 

      Console.WriteLine(list.Max()); 
      Console.ReadKey(); 
     } 

И это работает

+0

Его работа теперь благодарит за вашу помощь :) –

+0

Это неправильный ответ – Fabio

+0

Да, ваш ответ ниже правильный, спасибо @Fabio. Я больше не смущен :) –