Malheureusement, vous devez avoir un comparateur du type approprié.
Vous pouvez créer une classe IComparer<object>
personnalisée qui vient d'être enveloppée par le comparateur de date et heure, mais il n'existe aucun moyen de le faire directement via une distribution.
Si votre collection contient toujours des objets DateTime, vous pouvez juste faire:
ICollection<DateTime> collection = ...;
collection.Sort(Comparer<DateTime>.Default); // or just collection.Sort()
Modifier après avoir lu le commentaire:
Si vous travaillez avec un ICollection directement, vous pouvez voulez utiliser l'option LINQ à faire:
collection.Cast<DateTime>().OrderBy(date => date);
Si vous travaillez avec quelque chose qui implémente IList<T>
, (tel que List<DateTime>
) vous pouvez simplement appeler Sort() sur la liste elle-même.
Puisque vous utilisez une classe non standard, vous devrez faire votre propre comparateur:
class Comparer : IComparer<object> {
int Compare(object a, object b) {
return DateTime.Compare((DateTime)a, (DateTime)b);
}
}
Vous pouvez ensuite appeler:
collection.Sort(new Comparer());
Veuillez poster la déclaration de "collection". Nous avons besoin de plus d'informations pour aider. –
C'est une collection LLBL, à savoir SD.LLBLGen.Pro.upportClasses.EntityCollectionBase2 (maintenant vous êtes désolé, vous avez demandé :) –
JoelFan
Vous aurez besoin d'un comparateur personnalisé - si les types sont toujours des valeurs DateTIme, ce que je viens d'ajouter devrait fonctionner (avec seulement 5 lignes de code supplémentaires) –