Question comment trier une collection par datetime en c #


J'ai une liste que je dois trier par DateTime, la classe MyStuff ressemble à:

public class MyStuff
{
   public int Type {get;set;}
   public int Key {get;set;}
   public DateTime Created {get;set;}
}

Je dois pouvoir trier la liste de collection par le champ Créé (DateHeure).


33
2017-10-24 19:40


origine


Réponses:


Vous semblez travailler avec un List<T> object, auquel cas la méthode la plus efficace (et la plus simple) serait la suivante:

myList.Sort((x, y) => DateTime.Compare(x.Created, y.Created));

Cela utilise la surcharge du List.Sort méthode que prend un Comparison<T> délégué (et donc expression lambda).

Vous pouvez bien sur utiliser le LINQ OrderBy méthode d'extension, mais je ne pense pas que cela offre des avantages, et peut être considérablement plus lent, selon votre situation.

myList = myList.OrderBy(x => x.Created).ToList();

69
2017-10-24 19:43



var query = 
    from m in mystuffcollection
    orderby m.Created ascending
    select m;

6
2017-10-24 19:42