Возможно, имелись в виду методы для работы со строками, а не с массивами. Тогда есть некоторые отличия между Substring, IndexOf и LastIndexOf:
- Substring возвращает часть строки между начальным и конечным индексами или до конца строки. gist.github.com Есть вариант, когда метод возвращает часть строки определённой длины с определённого индекса. code-maze.com
- IndexOf возвращает индекс первого вхождения символа или строки в выбранной строке. devpractice.ru code-maze.com Если значение не существует, метод возвращает -1. code-maze.com Есть варианты, когда поиск начинается не с начала строки, а с определённой позиции. code-maze.com
- LastIndexOf возвращает индекс последнего вхождения символа или строки. devpractice.ru code-maze.com Можно задавать индекс, с которого начинать поиск, и количество проверяемых позиций. devpractice.ru
Таким образом, Substring фокусируется на извлечении части строки, IndexOf и LastIndexOf — на поиске индексов вхождения элементов.