Как узнать номер строки из списка - второго совпадения?

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 496
Благодарностей
1 304
Баллы
113
Доброго времени суток. Есть список, распределен построчно:

1 строка - A
2 строка - B
3 строка - A
4 строка - C
5 строка - A

Мне нужно получить номер строки с буквой A
Этот код, дает возможность получить строку c буквой A (которая у меня в переменной) - в результате в другую переменную получаем - 1 (Строка):
C#:
var check = project.Variables["C_CLASSID_Dyblja"].Value;
var list = project.Lists["Список classid GAME"];
return list.IndexOf(check); //
А как мне получить второе совпадение т.е. 3 (строка)?

Метод удаление первой строки или изменение имени первой строки, что бы потом найти А в 3 строке - не подходит, хотелось бы сразу получить номер - 3 .(строку).
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
у IndexOf должна быть перегрузка, в которой можно задать позицию с которой нужно начинать поиск
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
проходиться циклом по всему списку, считать совпадения и выходить по return, цепляя с собой номер строки нужного совпадения.
int counter=0;
int found=(int)project.Variables("переменная с нужным номером совпадения").Value;
string text=project.Variables("искомый текст").Value;
for(int i=0;i<list.Count;i++){
if (list==text){
counter++;
if(counter==found)return i;
}
}
 
  • Спасибо
Реакции: Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 496
Благодарностей
1 304
Баллы
113
проходиться циклом по всему списку, считать совпадения и выходить по return, цепляя с собой номер строки нужного совпадения.
int counter=0;
int found=(int)project.Variables("переменная с нужным номером совпадения").Value;
string text=project.Variables("искомый текст").Value;
for(int i=0;i<list.Count;i++){
if (list==text){
counter++;
if(counter==found)return i;
}
}

Подскажите, а как в этом коде вместо переноса всех дублей в отдельный список - перенести все номера строк IndexOf

C#:
var list = project.Lists["Список classid GAME2"];

foreach(string item in project.Lists["Список classid GAME TEST"])
   
    {
        //item - это твоя переменная Б
        ////if (project.Variables["ТвояПеременнаяА"].Value.Contains(item))//тут проверяем содержится ли Б в А с учетом регистра пример: Привет НЕ равно привет
        if (project.Variables["A_Count_Imeni"].Value.ToLower().Contains(item.ToLower()))//тут проверяем содержится ли Б в А без учета регистра пример: Привет равно привет  
         list.Add(item);//если Б есть в А тогда записываем Б в список
    }
Сейчас там list.Add(item); - она переносит имена всех найденых дублей, а как вставить примерно это - list.Add.IndexOf(item); - что бы переносило именно номера строк дублей?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)