Localizando todas as posições de substring em uma string maior em C #

Eu tenho uma string grande que preciso analisar e preciso encontrar todas as instâncias deextract"(me,i-have lots. of]punctuatione armazene o índice de cada um em uma lista.

Digamos que esse pedaço de cadeia esteja no início e no meio da cadeia maior, ambos serão encontrados e seus índices serão adicionados aoList. e aList conteria0 e o outro índice, seja qual for.

Eu tenho brincado, e ostring.IndexOf fazquase o que estou procurando e escrevi algum código - mas não está funcionando e não consegui descobrir exatamente o que está errado:

List<int> inst = new List<int>();
int index = 0;
while (index < source.LastIndexOf("extract\"(me,i-have lots. of]punctuation", 0) + 39)
{
    int src = source.IndexOf("extract\"(me,i-have lots. of]punctuation", index);
    inst.Add(src);
    index = src + 40;
}
inst = A listasource = A cadeia grande

Alguma ideia melhor?

questionAnswers(12)

yourAnswerToTheQuestion