Maison >développement back-end >C++ >Comment puis-je utiliser efficacement une clause WHERE IN équivalente dans LINQ ?

Comment puis-je utiliser efficacement une clause WHERE IN équivalente dans LINQ ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-06 16:49:44736parcourir

How Can I Efficiently Use a WHERE IN Clause Equivalent in LINQ?

Clause Where IN dans LINQ (solution améliorée)

En SQL, la clause WHERE IN est utilisée pour vérifier si un champ correspond à une valeur à partir d'une liste. Vous pouvez obtenir une fonctionnalité similaire dans LINQ en utilisant l'approche améliorée suivante.

public List<State> Wherein(string listofcountrycodes)
{
    string[] countryCode = listofcountrycodes.Split(',');
    var states = from states in _objdatasources.StateList()
                 where countryCode.Contains(states.CountryCode)
                 select new State
                 {
                     StateName = states.StateName
                 };
    return states.ToList();
}

Ce code utilise la méthode LINQ Contains pour vérifier si le CountryCode d'un état correspond à une valeur du tableau countryCode. La méthode ToList est utilisée pour convertir la requête d'états en une liste concrète.

Explication :

  • La clause from définit la plage d'éléments à interroger, dans dans ce cas, la StateList de l'objet _objdatasources.
  • La clause Where filtre les résultats en fonction de la condition countryCode.Contains(states.CountryCode), qui vérifie si le CountryCode de l'état actuel est présent dans la liste des codes pays.
  • La clause select projette les états sélectionnés dans une nouvelle liste d'objets State, contenant uniquement la propriété StateName.
  • Enfin, la méthode ToList convertit la requête LINQ en une liste concrète objet.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn