Ciao
Potresti usare la funzione IndexOf della stringa da cercare, ripetendola successivamente, e passando come parametro il carattere da cercare e l'indice dell'ultimo carattere trovato aumentato di uno. Così, volendo ad esempio ottenere tutti gli indici dei caratteri '|' da una stringa, procederesti in questo modo:
string s = "str1|str2|test1|test2|prova1|prova2";
int index = s.IndexOf('|');
//Se l'indice è -1 significa che
//non è stata trovata nessuna corrispondenza
while (index != -1)
{
index = s.IndexOf('|', index + 1);
//Qui esegui il lavoro che devi fare con l'indice ottenuto
}
Luca