Existe-t-il une meilleure façon simplifiée d'écrire cette requête. Ma logique est si la collection contient des identifiants de client et des codes de pays, exécutez la requête ordey par identifiant client croissant. S'il n'y a aucun ID de contenu dans CustIDs, effectuez la commande par nom de client. Y a-t-il un meilleur moyen d'écrire cette requête? Je ne suis pas vraiment familier avec les lambdas complexes.Existe-t-il un meilleur moyen d'écrire cette requête LINQ?
var custIdResult = (from Customer c in CustomerCollection
where (c.CustomerID.ToLower().Contains(param.ToLower()) &&
(countryCodeFilters.Any(item => item.Equals(c.CountryCode))))
select c).ToList();
if (custIdResult.Count > 0)
{
return from Customer c in custIdResult
where (c.CustomerName.ToLower().Contains(param.ToLower()) &&
countryCodeFilters.Any(item => item.Equals(c.CountryCode)))
orderby c.CustomerID ascending
select c;
}
else
{
return from Customer c in CustomerCollection
where (c.CustomerName.ToLower().Contains(param.ToLower()) &&
countryCodeFilters.Any(item => item.Equals(c.CountryCode)))
orderby c.CustomerName descending
select c;
}
Mon cerveau a été gelé et aurait dû penser cette façon :) excellent . Merci beaucoup. – Spock