Как найти индекс строки в списке - программирование

Как найти индекс строки в списке

Итак, что я пытаюсь сделать, это получить индекс первого элемента в списке, который начинается с "что угодно", я не уверен, как это сделать.

Моя попытка (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);

Да, я знаю, что это не совсем так, и это неправильно, потому что он ищет элемент, который равен npcID, а не строке, начинающейся с него.

4b9b3361

Ответ 1

Если вы хотите "StartsWith", вы можете использовать FindIndex

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

Ответ 2

если ваш txtLines является типом списка, вам нужно поместить его в цикл, после чего получить значение

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

Ответ 3

Предположим, что txtLines заполнено, теперь:

 List<int> index = new List<int>();
 for (int i = 0; i < txtLines.Count(); i++ )
         {
           index.Add(i);
         }

теперь у вас есть список int, содержащий индекс всех элементов txtLines. вы можете вызвать первый элемент List<int> index с помощью этого кода: index.First();