web-dev-qa-db-fra.com

Comment trouver un index d'une chaîne dans une liste

Donc, ce que j'essaie de faire, c'est de récupérer l'index du premier élément, dans la liste, qui commence par "quoi que ce soit", je ne sais pas comment faire cela.

Ma tentative (lol):

List<string> txtLines = new List<string>();
//Fill a List<string> with the lines from the txt file.
foreach(string str in File.ReadAllLines(fileName)) {
  txtLines.Add(str);
}
//Insert the line you want to add last under the tag 'item1'.
int index = 1;
index = txtLines.IndexOf(npcID);

Oui, je sais que ce n'est pas vraiment quelque chose, et c'est faux parce qu'il semble chercher un élément qui est égal à npcID plutôt que la ligne qui commence par lui.

19
Simon Taylor

Si vous voulez "StartsWith", vous pouvez utiliser FindIndex

 int index = txtLines.FindIndex(x => x.StartsWith("whatever"));
50
sa_ddam213

si votre txtLines est un type de liste, vous devez le mettre en boucle, après quoi récupérer la valeur

int index = 1;
foreach(string line in txtLines) {
     if(line.StartsWith(npcID)) { break; }
     index ++;
}
2
dArc