如果下一行等于文本,则获取 IndexOf

Get IndexOf if next line equals text

如果下一行等于变量

,我需要获取 List<string> 中特定行的索引
List:
Chapter
1
He 
Was
Chapter
2
She
Is

我想要下一行等于 2 的 IndexOf "Chapter"

事实是,使用 IndexOf,您会得到 first occurrence。相反,您可以检查所有出现的“章节”,检查以下索引的值是否为 2.

for(int i = 0; i < list.Count - 1; i++){
    if ("Chapter".Equals(list[i]) && "2".Equals(list[i+1]))
        answerIndex = i;

试试这个

var index=GetIndex(list,"Chapter","2");

public int GetIndex( List<string> list, string current, string next)
{
    var previous = string.Empty;
    var index = 0;
    foreach (var item in list)
    {
        if (item == next && previous == current) return index-1;
        index++;
        previous = item;
    }
    return -1;
}