2016-03-24 2 views
1

Я использую .net 4 и чтение RSS-канал от веб-сайта Новости - http://feeds.bbci.co.uk/news/uk/rss.xml?edition=ukКак заказать RSS лента из новостей сайта по дате публикации

Я получил корм, попадающего на страницу с помощью повторителя но я только что заметил, что фиды не сортируют дату публикации DESC все время. Кажется, странная группировка.

Как я могу явно указать, что он отсортирован по дате публикации DESC?

Это то, что я до сих пор ...

private void PopulateRssFeed() 
{ 
    //BBC UK 
    string RssFeedUrl = "http://feeds.bbci.co.uk/news/uk/rss.xml?edition=uk"; 

    List<Feeds> feeds = new List<Feeds>(); 
    try 
    { 
     XDocument xDoc = new XDocument(); 
     xDoc = XDocument.Load(RssFeedUrl); 

     //Take 3 Limits the number of items to display 
     //i.e - 
     //var items = (from x in xDoc.Descendants("item").Take(3) 
     var items = (from x in xDoc.Descendants("item") 
        select new 
        { 
         title = x.Element("title").Value, 
         link = x.Element("link").Value, 
         pubDate = x.Element("pubDate").Value, 
         description = x.Element("description").Value 
        }); 


     if (items != null) 
     { 
      foreach (var i in items) 
      { 

       Feeds f = new Feeds 
       { 
        Title = i.title, 
        Link = i.link, 
        PublishDate = i.pubDate, 
        Description = i.description 
       }; 

       feeds.Add(f); 

      } 

     } 

     Repeater1.DataSource = feeds; 
     Repeater1.DataBind(); 

    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
} 

ответ

0

Использование LINQ orderby ... descending:

var items = (from x in xDoc.Descendants("item") 
      orderby (DateTime)x.Element("pubDate") descending 
      select new 
      { 
       title = x.Element("title").Value, 
       link = x.Element("link").Value, 
       pubDate = x.Element("pubDate").Value, 
       description = x.Element("description").Value 
      }); 

Как и в сторону, items никогда не может быть null так if (items != null) проверка не требуется.

+0

Благодарим вас за то, что вы указали нулевой отзыв. – KlydeMonroe

Смежные вопросы