Как насчет LastIndexOf?
Из MSDN:
Сообщает позицию индекса последнего вхождения указанной строки в данном экземпляре...Поиск начинается с startIndex символьной позиции этого экземпляра и продолжается в обратном направлении к началу, пока либо не будет найдено значение или первая символьная позиция была изучена.
int index = some_string.LastIndexOf("something", 1000);