Вы можете сделать это многими способами, самый быстрый способ будет цикл :
string pattern = "o7o7o7o7o7o";
int count = 0;
int index = 0;
while(index < pattern.Length)
{
if(pattern[index] == 'o') count++;
if(count == 2) break;
index++;
}
и index
- это то, что вы хотите.
Linq:
int index = pattern.Select((x, i) => new { x, i })
.Where(a => a.x == 'o').Skip(1)
.FirstOrDefault().i;
string.IndexOf ():
int count = 0, index = 0;
do
{
index = pattern.IndexOf('o', index);
if (index != -1) { count++; index++; }
} while (index != -1 && count < 2);
и есть много других способов, но я думаю, что три вышепримеры были бы хорошими, поскольку другие способы, о которых я думаю, медленнее (по крайней мере, те, о которых я могу думать).