2010-01-06 7 views
1

J'ai une liste et voudrais trier par date, puis commander d'abord par la date la plus récente.Tri des listes par date, puis ordre par dernière

Le code ci-dessous sortes par date:

allFeeds.Sort(delegate(SimplifiedFeedItem p1, SimplifiedFeedItem p2) 
        { return p1.PublishDate.CompareTo(p2.PublishDate); }); 

        allFeeds.ForEach(delegate(SimplifiedFeedItem p) 
        { // display list}); 

Comment puis-je commander puis par la dernière première date (sa première commande actuellement la date la plus ancienne)? Merci

Répondre

3

il suffit de changer le signe qui est revenu de DateTime.CompareTo:

allFeeds.Sort(delegate(SimplifiedFeedItem p1, SimplifiedFeedItem p2) 
       { return -p1.PublishDate.CompareTo(p2.PublishDate); }); 

Vous pouvez faire ce nettoyant en utilisant une expression lambda:

allFeeds.Sort((p1, p2) => -p1.PublishDate.CompareTo(p2.PublishDate)); 
+0

im aimer. Merci! – test

+0

De rien. – jason

+0

@Jason ce qui est p1 et p1, pouvez-vous donner un code complet avec p1 et p2 définition? –