J'ai une requête semblable à ceci:Linq return null sur « false » où clausule
var solution = (from hit2 in Hits.Where(x => x.Combination.Count == 2)
where IsPossibleHit(hit2, 2, currentSymbols)
from hit3 in Hits.Where(x => x.Combination.Count == 3)
where IsPossibleHit(hit3, 3, currentSymbols)
from hit4 in Hits.Where(x => x.Combination.Count == 4)
where IsPossibleHit(hit4, 4, currentSymbols)
from hit5 in Hits.Where(x => x.Combination.Count == 5)
where IsPossibleHit(hit5, 5, currentSymbols)
select new
{
hitsList = new List<Hit>(){
hit2,
hit3,
hit4,
hit5}
}).ToList();
mon problème est que lors de groupes, si HIT2 et hit3 sont des coups possibles, j'ai besoin le nouvel objet être créé, mais, parce que hit4 renvoie false, la combinaison entière est rejetée.
Comment y parvenir?
EDIT: Je pense que je ne l'ai pas fait comprendre ce que je dois, ou ce que mon problème est:
Mon problème est que, lorsque IsPossibleHit (hitN) retourne false, toute combinaison est mis au rebut (par LINQ) , mais ce dont j'ai besoin, c'est que l'objet soit créé de toute façon, avec les hits qui retournent false mis à null, ou même pas ajoutés à la liste Hit du nouvel objet.
Si vous ne voulez pas hit4, alors pourquoi le mettre dans la clause where? –
Je n'en ai besoin que si le IsPossibleHit pour hit4 renvoie vrai. (la requête rejette la combinaison, pas moi) –
Ensuite, il fait ce que vous voulez, hit4 renvoie false, la combinaison entière est défaussée. Je peux me méprendre ici. –