Maison > développement back-end > C++ > Comment utiliser Contains() avec un tableau de chaînes dans les requêtes LINQ ?

Comment utiliser Contains() avec un tableau de chaînes dans les requêtes LINQ ?

Susan Sarandon
Libérer: 2024-12-27 07:19:09
original
126 Les gens l'ont consulté

How to Use Contains() with a String Array in LINQ Queries?

Comment remplacer Contains(string) par Contains(string[]) dans les requêtes LINQ

Dans LINQ, la méthode Contains() peut être utilisé pour vérifier si une collection contient un élément spécifique. Par défaut, la méthode Contains() prend un seul paramètre de chaîne, mais que se passe-t-il si vous devez comparer avec un tableau de chaînes ?

Question :

J'ai un Requête LINQ qui ressemble à ceci :

from xx in table
where xx.uid.ToString().Contains(string[])
select xx
Copier après la connexion

Les valeurs du tableau string[] sont des nombres (par exemple, 1, 45, 20, 10). Je souhaite utiliser la méthode Contains() pour vérifier si la propriété xx.uid (qui est un nombre) est présente dans le tableau. Comment puis-je faire cela ?

Réponse :

Pour comparer xx.uid à un tableau de chaînes, vous ne pouvez pas utiliser directement la méthode Contains(string). Au lieu de cela, vous devez convertir le tableau string[] en une collection prenant en charge la méthode Contains(). Voici deux approches :

  1. Utilisation d'une liste :

Convertissez le tableau string[] en une liste puis utilisez la méthode Contains() sur la liste :

var uids = new List<string>(stringArray);
var selected = table.Where(t => uids.Contains(t.uid.ToString()));
Copier après la connexion
  1. Utilisation d'une liste (si uid est également un entier) :

Si uid est également un entier, vous pouvez convertir le tableau string[] en un List puis utilisez la méthode Contains() sur la liste :

var uids = stringArray.Select(int.Parse).ToList();
var selected = table.Where(t => uids.Contains(t.uid));
Copier après la connexion

Méthode d'extension (facultatif) :

Vous pouvez également créer une méthode d'extension pour la chaîne[ ] tapez pour fournir une méthode Contains() qui prend un argument chaîne :

public static bool Contains(this string[] arr, string value)
{
    return arr.Any(s => s == value);
}
Copier après la connexion

Avec cette méthode d'extension, vous pouvez utiliser directement la méthode Contains() sur le tableau string[] :

var selected = table.Where(t => stringArray.Contains(t.uid.ToString()));
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal