У меня есть список записей в файле 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 ответ
Вам нужно сохранить дату создания как объект DateTime, а не как строку. Реализуйте в своем классе Record метод сравнения, который сравнивает даты создания. Затем, если вы храните свои записи в списке, вы сможете его отсортировать. В приведенном ниже примере последние записи будут в конце, поэтому, если вы хотите их, просто переверните список.
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);
}
}
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.