Maison >développement back-end >C++ >Comment la méthode « Contains() » de LINQ peut-elle remplacer une clause « WHERE IN » ?
Lorsque vous travaillez avec des bases de données, vous pouvez rencontrer le besoin d'utiliser la clause WHERE IN pour filtrer les résultats en fonction de plusieurs critères. Cela peut être facilement réalisé dans LINQ (Language Integrated Query) en utilisant la méthode Contains().
Pour illustrer, supposons que vous souhaitiez récupérer tous les États qui appartiennent à une liste spécifique de codes de pays. Au lieu de diviser manuellement les codes de pays et de les parcourir en boucle comme indiqué dans le code d'origine :
public List<State> Wherein(string listofcountrycodes) { string[] countrycode = null; countrycode = listofcountrycodes.Split(','); List<State> statelist = new List<State>(); for (int i = 0; i < countrycode.Length; i++) { _states.AddRange( from states in _objdatasources.StateList() where states.CountryCode == countrycode[i].ToString() select new State { StateName = states.StateName }); } return _states; }
Vous pouvez simplifier ce processus en utilisant la méthode Contains() :
dataSource.StateList.Where(s => countryCodes.Contains(s.CountryCode))
Cette expression récupère tous les États dont les codes de pays sont présents dans la collection countryCodes. L'expression lambda (s => countryCodes.Contains(s.CountryCode)) est évaluée comme vraie pour chaque état qui correspond aux critères spécifiés, vous permettant de filtrer les résultats en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!