Bonjour,
Je suis actuellement en train d'utiliser linq et les lambda expression et je me pose une question concernant l'écriture.
J'ai une reqûete qui ressemble à ceci.
1 2 3 4 5 6
|
var listEnigme = listEnigme .Where(e =>
e.SolutionList != null &&
e.SolutionList.FirstOrDefault(ls => ls.Number == e.SolutionList.Max(max=>max.Number)) != null &&
e.SolutionList.FirstOrDefault(ls => ls.Number == e.SolutionList.Max(max=>max.Number)).coef != null &&
e.SolutionList.FirstOrDefault(ls => ls.Number == e.SolutionList.Max(max=>max.Number)).coef < 100); break; |
Le but est d'obtenir la liste des énigme donc la dernière solution à un coefficient inférieur à 100.
La dernière solution correspond à la solution ayant le plus grand Number.
Je voudrais savoir s'il n'est pas possible d'introduire une variable afin de ne pas avoir à répeter
e.SolutionList.FirstOrDefault(ls => ls.Number == e.SolutionList.Max(max=>max.Number))
En gros fgaire quelque chose comme ça:
1 2 3 4 5 6 7
|
var listEnigme = listEnigme .Where(e =>
e.SolutionList != null &&
((mx => e.SolutionList.FirstOrDefault(ls => ls.Number == e.SolutionList.Max(max=>max.Number)))
&& mx!=null
&& mx.coef != null &&
mx.coef < search.coef)); |
Par avance merci beaucoup à vous.
Partager