Condition dans l'expression lambda commande par

J'ai 2 Listes de revenir par le même Élément .
<foo> a la propriété orderType c'est 0 pour le premier de la liste et 1 pour le second
Dans la première liste, je ne le filtrage et j'ai ajouter des éléments à partir de la deuxième liste pour le résultat qui est limitée par la pagination.
Fondamentalement, c'est ma dernière question :

var listFoo= QueryList1.Concat(QueryList2);  //(IQueriable)
List<foo> listFoo =listFoo.OrderByDescending(r => r.ID)
                          .ThenBy(d =>d.orderType)
                          .Skip((currentPageIndex - 1) * pageSize)
                          .Take(pageSize)
                          .ToList();

Cela fonctionne très bien car la liste 1 fonctionne comme élément principal et la liste 2 des œuvres que les détails de la première liste. Aussi mes filtres doivent travailler uniquement sur la première liste. Mais le problème vient ici. Comment puis-je commander la deuxième liste seulement par jour. J'ai besoin de répertorier toutes les informations classées par date.
Fondamentalement, j'ai besoin de quelque chose comme :

List<foo> listFoo =listFoo.OrderByDescending(r => r.ID)
                          .ThenBy(d =>d.orderType)
                          .ThenBy(x=>(x.ordertype==1)?x.Date)
                          .Skip((currentPageIndex - 1) * pageSize)
                          .Take(pageSize)
                          .ToList();

Edit :

List 1 : 
id =1,ordertype=0,Date = new DateTime(1950,1,4),  [0]
id =2,ordertype=0,Date = new DateTime(1950,2,1)   [1]
List 2 :
id =1,ordertype=1,Date = new DateTime(1950,1,5),  [2]
id =1,ordertype=1,Date = new DateTime(1950,1,2),  [3]
id =1,ordertype=1,Date = new DateTime(1950,1,3),  [4]
id =1,ordertype=1,Date = new DateTime(1950,1,4)   [5]
This should be ordered as follows : 
[0],[3],[4],[5],[2],[1]
Il me semble que vous pouvez toujours commander simplement par ID, ordertype et la Date. Ordertype 0 sera toujours premier avec les mêmes Identifiants.
Oui ... vous avez raison. C'est la solution que je vais utiliser .. je vais donner Stanley la réponse correcte dans le cas où quelqu'un se cogne sur la question, je pensais que j'avais. ( le problème est dans la définition d'un champ) . Cheers mate

OriginalL'auteur Mihai Labo | 2013-03-04

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *