Получение последних записей - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть список записей в XML-файле, где каждая запись является датой ее создания. Можете ли вы предложить мне эффективный способ получения последних двух записей.

XML-файл можно обучить следующим образом:

<Records>
    <Record>
        <RecordID>1<RecordID>
        <CreationDate>Apr 01, 2011 10:15 <CreationDate>
   <Record>
   <Record>
        <RecordID>2<RecordID>
        <CreationDate>Jan 12, 2011 10:15<CreationDate>
   <Record>
   <Record>
       <RecordID>3<RecordID>
       <CreationDate>Feb 12, 2011 09:00<CreationDate>
   <Record>
         .
         .
         .
         .
   many such records...
<Records>

Примет все эти xml в список, но затем вы можете сказать мне эффективный способ извлечения двух последних записей из списка.

Спасибо.

1 Ответ

0 голосов
/ 15 апреля 2011

Вам необходимо сохранить дату создания как объект DateTime, а не как строку.Реализуйте метод сравнения в своем классе записей, который сравнивает даты создания.Затем, если вы сохраните свои записи в списке, вы сможете отсортировать их.В приведенном ниже примере последние записи будут в конце, поэтому, если вы хотите, чтобы они просто изменили список.

List<Records> recordList = parseXml(); // populate your list
recordList.Sort(new Comparison<Record>(Record.Comparison)); // sort in creation date ascending order
recordList.Revers(); // reverse the elements in the list

Record[] the2latest = new Record[2]{recordList[0], recordList[1]};

public partial class Record
{
   public static int Comparison(Record r1, Record r2)
    {
        return DateTime.Compare(r1.creationDate, r2.creationDate);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...