En cherchant une réponse à cette question, j'en ai rencontré des similaires en 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 cela. Ce que je voudrais, en gros, c'est ceci:
- Vérifiez si un élément d'une liste contient une chaîne spécifique.
- Si c'est le cas, récupérez cet élément.
Honnêtement, je ne sais pas comment j'y arriverais. Ce que je peux trouver, c'est ceci (ne fonctionne pas, bien sûr):
if (myList.Contains(myString))
string element = myList.ElementAt(myList.IndexOf(myString));
Je sais pourquoi cela ne fonctionne pas:
myList.Contains()
ne retourne 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, car, comme c'est encore le cas, il recherchera 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 pense que je vais devoir utiliser LINQ comme suggéré dans des questions similaires aux miennes. Cela étant dit, si c'est le cas ici, j'aimerais que le répondant m'explique l'utilisation de LINQ dans son exemple (comme je l'ai dit, je ne me suis pas préoccupé de cela depuis mon temps avec C #). Merci d'avance les gars (et les filles?).
EDIT: J'ai trouvé une solution; bouclez simplement dans la liste, vérifiez si l'élément actuel contient la chaîne, puis définissez une chaîne égale à l'élément actuel. Je me demande, cependant, existe-t-il un moyen plus efficace que cela?
string myString = "bla";
string element = "";
for (int i = 0; i < myList.Count; i++)
{
if (myList[i].Contains(myString))
element = myList[i];
}
myString
, dans votre boucle actuelle, vous obtiendrez le dernier élément. Cela dépend de vous si vous voulez trouver le premier ou le dernier, si vous voulez juste trouver le premier, puis rompre la boucle après avoir trouvé l'élément.