Comparaisons de chaînes insensibles à la casse à l'aide de la méthode Contains de LINQ
Lorsque vous travaillez avec des comparaisons de chaînes dans les requêtes LINQ, il est essentiel de prendre en compte la sensibilité à la casse. Par défaut, la méthode Contains est sensible à la casse, ce qui signifie que « CaseSensitive » et « casesensitive » ne correspondront pas.
Problème :
Dans la requête LINQ suivante, notre objectif est de récupérer les entités FACILITY_ITEM sur la base d'un filtre de description. Cependant, la requête est actuellement sensible à la casse et peut ne pas renvoyer les résultats souhaités.
public IQueryable<FACILITY_ITEM> GetFacilityItemRootByDescription(string description) { return this.ObjectContext.FACILITY_ITEM.Where(fi => fi.DESCRIPTION.Contains(description)); }
Solution :
Pour rendre la comparaison insensible à la casse, nous pouvons utilisez la méthode ToLower() avant d’effectuer la vérification Contains. Cela convertit à la fois le filtre de description et les valeurs de la base de données en minuscules, garantissant une comparaison insensible à la casse.
fi => fi.DESCRIPTION.ToLower().Contains(description.ToLower())
En utilisant cette expression mise à jour, la requête renverra des résultats où la description de l'élément d'installation correspond au filtre de description, quel que soit son cas.
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!