我用这段代码抓取文章。
List<view_M04FrontpagesEntity> fList = new view_M04FrontpagesService().GetByCategoryId(0);
var article = new M02ArticlesService().GetById(fList.First<view_M04FrontpagesEntity>().M02ArticleId);
我想用最新的article.UpdatedDate
来抓取这篇文章,如何用linq或其他方法来最好地做到这一点?
使用我的MoreLinq 提供的MaxBy
方法
List<view_M04FrontpagesEntity> fList = new view_M04FrontpagesService().GetByCategoryId(0);
var newest = fList.MaxBy(article => article.UpdatedDate);
您可以在LInQ中使用OrderByDescending。
var query = myList.Where(x =>x=="somePredicate")
.OrderByDescending(x => x.UpdatedDate ).FirstOrDefault();
返回序列的第一个元素,如果序列不包含元素,则返回默认值。
var first = articles.OrderByDescending( a => a.UpdateDate ).First();
一般来说,就是这样。你需要自己把它转移到你的代码中,因为你发布的代码都没有帮助。
var result = (from article in fList
orderby article.UpdatedDate descending
select article).First();
这是按预期工作的。
var m04FrontpagesEntities = new view_M04FrontpagesService().GetByCategoryId(0).ToList().Select(x => new M02ArticlesService().GetById(x.M02ArticleId)).ToList().OrderByDescending(x => x.UpdatedDate); ;
var article = m04FrontpagesEntities.First();