Les opérateurs LINQ encastrables utilisent les opérations de tri attendues (pour LINQ-à-objets, il le fait en utilisant Comparer<T>.Default
Votre expression lambda est fortement typé, dans les coulisses du compilateur déduit des génériques pour vous - il est. en fait:
var newList = Enumerable.OrderBy<Product,DateTime>(
ProductsList, Product => Product.Added).ToList();
déjà sait est un DateTime
, donc la seule fois où vous auriez besoin de faire quelque chose en plus ici est de savoir si les dates contiennent une gamme de différents fuseaux horaires Bien sûr, au sein a. fuseau horaire vous s Hould bien, mais vous pouvez (si vous étiez paranoïaque) convertir tout UTC - Je ne pense vous devez faire dans votre cas, mais:
var newList = ProductsList.OrderBy(
Product => Product.Added.ToUniversalTime()).ToList();
Notez que cela crée en fait un deuxième liste (cela ne change pas l'ordre de la liste originale); vous pouvez utiliser la code from here pour faire une place à trier par lambdas:
ProductsList.Sort(Product => Product.Added);
Que voulez-vous dire par « au format GMT »? Quel est le type de la propriété Added? –
Temps moyen de Greenwich. Added est un champ DateTime extrait de la base de données sql. BTW Je savais que cette question était un piège à miel Jon Skeet! LOL; -> –
En quoi le GMT est-il pertinent? Est-ce que la propriété 'Added' contient des dates pour différents fuseaux horaires? S'ils sont tous dans le même fuseau horaire, la commande ne changera pas si vous ne faites que trier par date ou si vous convertissez d'abord toutes les dates en GMT. Je suppose qu'il me manque quelque chose ici ... –