Dans notre application, nous avons une petite requête qui ressemble à ceci:Methode appel à deux reprises à l'intérieur de requête LINQ
var selectedAgents = from agent in listAgents
where (this.collectionVehicles.GetVehicleByAgent(agent)).IsActive ||
(this.collectionVehicles.GetVehicleByAgent(agent)).IsSoldSinceCurrentSession
select agent;
Cela fonctionne très bien, mais la méthode GetVehicleByAgent est appelée deux fois et cela est peut-être pas nécessaire.
Avant LINQ, nous avions une foreach-boucle et fait comme ceci:
Vehicle parentVehicle = collectionVehicles.GetVehicleByAgent(agent);
if (parentVehicle.IsActive || parentVehicle.IsSoldSinceCurrentSession)
{
selectedAgents.Add(agent);
}
Comme vous pouvez le voir GetVehicleByAgent retourne un objet véhicule et qui peut easiely par rapport plus d'une fois. Donc, je cherche un moyen de récupérer le véhicule dans la requête LINQ et le garder. Je ne veux pas appeler GetVehicleByAgent deux fois.
Oui, voilà! Fonctionne parfaitement! – TalkingCode