En cherchant une réponse à cette question, je suis tombé sur des questions similaires utilisant LINQ, mais je n'ai pas été en mesure de les comprendre pleinement (et donc de les mettre en œuvre), car je ne suis pas familiarisé avec ce système. Ce que je voudrais faire, en gros, c'est ceci :
- Vérifie si un élément d'une liste contient une chaîne spécifique.
- Si c'est le cas, prenez cet élément.
Honnêtement, je ne sais pas comment je m'y prendrais pour faire ça. Ce que j'ai pu trouver, c'est ceci (qui ne fonctionne pas, bien sûr) :
if (myList.Contains(myString))
string element = myList.ElementAt(myList.IndexOf(myString));
Je sais pourquoi ça ne marche pas :
-
myList.Contains()
ne renvoie pastrue
car il vérifiera si un élément entier de la liste correspond à la chaîne que j'ai spécifiée. -
myList.IndexOf()
ne trouvera pas d'occurrence, puisque, comme c'est le cas à nouveau, il vérifiera un élément correspondant à la chaîne.
Pourtant, je n'ai aucune idée de la façon de résoudre ce problème, mais je me dis que je vais devoir utiliser LINQ comme suggéré dans des questions similaires à la mienne. Ceci étant dit, si c'est le cas ici, j'aimerais que la personne qui répond m'explique l'utilisation de LINQ dans son exemple (comme je l'ai dit, je ne m'en suis jamais occupé depuis que j'utilise C#). Merci d'avance les gars (et les filles ?).
EDIT : J'ai trouvé une solution ; il suffit de faire une boucle dans la liste, de vérifier si l'élément actuel contient la chaîne de caractères, puis de définir une chaîne de caractères égale à l'élément actuel. Je me demande cependant s'il existe une méthode plus efficace que celle-ci ?
string myString = "bla";
string element = "";
for (int i = 0; i < myList.Count; i++)
{
if (myList[i].Contains(myString))
element = myList[i];
}