Поиск последней даты в XmlNode с помощью string[]

#c# #arrays #xmlnode #xmlnodelist

#c# #массивы #xmlnode #xmlnodelist

Вопрос:

Я перебираю XmlNodeList и получаю дату создания узлов в строке []. Например:

 date[0] = 2016 //year
date[1] = 07 //month
date[2] = 23 //day
  

Мой вопрос в том, что было бы наиболее эффективным способом сравнения этого string[] с другим string[] , чтобы найти, у какого из них последняя дата? Я мог бы сделать это с помощью нескольких операторов if, сравнивающих каждый элемент друг с другом, но чувствую, что это не самое лучшее / красивое решение. Заранее спасибо.

Ответ №1:

Вы могли бы использовать ParseExact для создания DateTime из string[] . Затем упорядочивайте по нему:

 List<string[]> data = new List<string[]>
{ 
    new string[] { "2016", "07", "23" }, 
    new string[] { "2017", "01", "01" } 
};

var latestTime = data.OrderByDescending(item => 
                         DateTime.ParseExact(string.Join("/", item), @"yyyy/MM/dd", null))
                     .FirstOrDefault();

//latestTime = 1/1/2017