Bonjour,

Je suis nouveau pour tout ce qui concerne le LINQ et j'ai une requête que je dois effectué mais je n'y arrive pas, peut-être une personne trouvera, je m'explique :

Je dois parcourir une liste de contrats et la comparer à une autre. Si un objet contrat est commun (via leurs id) aux deux listes, alors il doit me le dire.
De plus, il faut que ce contrat ait un statut spécifique passé en paramètre à la requête LINQ.

Je ne sais pas si vous avez compris mais en gros il me faudrait quelque chose comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
foreach (ContractVO C in listAllContracts)
{
     // Il faut comparer les id du contrat et non l'objet
     if (listSelectedSentContracts.Contains(C) && C.Status.Equals(ContractStatus.SentToCustomer) || C.Status.Equals(ContractStatus.Signed))
          ALORS JE FAIS UN TRAITEMENT
     else if (C.Status.Equals(ContractStatus.Stock) || C.Status.Equals(ContractStatus.Underway) || C.Status.Equals(ContractStatus.Pending) || (C.Status.Equals(ContractStatus.SentToCustomer) && !listSelectedSentContracts.Contains(C)) && C.StartDate >= cutOffEndDate)
          JE FAIS UN AUTRE TRAITEMENT
}
Pour l'instant ce que je fais en LINQ est quelque chose comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
var listSentContracts =    (from list in listSelectedSentContracts
                                   where C.ContractId.Equals(list.CustomerId)
                                   && Status2.Contains((ContractStatus)list.Status)
                                   select list).ToList();
Mais ça me retourne aucun objet alors qu'il y en a bien un

Quelqu'un saurait comment faire la même chose que l'exemple donné plus haut en LINQ ?

Merci d'avance