我有一个Xml文件中的记录列表,其中每个记录作为其日期的creation.Can请您建议我一个有效的方法来获得最新的两个记录。
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放到一个列表中,但是你能告诉我从列表中提取最新两条记录的有效方法吗?
谢谢。
发布于 2011-04-15 18:17:38
您需要将创建日期存储为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);
}
}https://stackoverflow.com/questions/5673774
复制相似问题