我正在学习 RSS 提要,并且遇到了一个令我惊讶的是我以前从未遇到过的问题,这可能是一个非常简单的答案,但我在 Google 上找不到任何内容。我正在使用 SyndicateItem 从 RSS 提要获取 XML 项目,但是当您使用 foreach 时,它会获取每个项目,我只想获取最新的项目 - 代码片段如下。
//Add required parsing in here
foreach (SyndicationItem item in feed.Items)
{
//put data you want parsed
}
显然,我想过在末尾添加一个中断,但这绝对是我将来需要找到答案的问题,我希望比这更干净地解决它。
因此,如有任何帮助,我们将不胜感激,谢谢!
最佳答案
试试这个:
var latest = feed.Items.OrderByDescending(x=>x.PublishDate).FirstOrDefault();
OrderByDescending
将按日期降序排列项目并取 FirstOrDefault
项目将获取具有最高发布日期的项目(最新项目)
SyndicateItem
有 PublishDate
属性(property)
了解更多关于Linq
的信息创建此类查询非常有用。
编辑:
如果它们按PublishDate
排序,您可以使用 LastOrDefault
方法,但如果您不能 100% 确定,最好先对其进行排序。
var latest = feed.Items.LastOrDefault();
编辑2:
处理空列表,例如:
if(!feed.Items.Any)
{
//alert about no elements
}
关于c# - 只获取第一个项目与 SyndicateItem/foreach 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295370/