Utilisation de LINQ Contains(string[]) au lieu de Contains(string)
Dans les requêtes LINQ, l'opérateur Contains est utilisé pour vérifier si une valeur spécifique existe dans une collection. Par défaut, Contains accepte une seule chaîne comme paramètre. Cependant, certains scénarios peuvent nécessiter la comparaison de plusieurs valeurs d'un tableau de chaînes.
Pour résoudre ce problème, vous pouvez créer une méthode d'extension personnalisée pour string[] qui lui permet d'être utilisée avec l'opérateur Contains.
Méthode d'extension personnalisée :
public static bool ContainsArray(this string[] array, string value) { return array.Any(element => element == value); }
Cette méthode parcourt le tableau de chaînes et renvoie vrai si la valeur spécifiée est trouvée, ou faux sinon.
Utilisation dans la requête LINQ :
Avec la méthode d'extension définie, vous pouvez désormais l'utiliser dans votre requête LINQ :
var uids = new[] { "1", "45", "20", "10" }; var query = from xx in table where xx.uid.ToString().ContainsArray(uids) select xx;
En utilisant la méthode d'extension ContainsArray, vous pouvez désormais comparer la valeur de xx.uid avec plusieurs valeurs du tableau de chaînes uids. La requête renverra toutes les entités où xx.uid est contenu dans le tableau spécifié.
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!