获得最新记录

时间:2011-04-15 07:42:52

标签: c# .net xml sorting

我有一个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 :(得分:0)

您需要将创建日期存储为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);
    }
}