Метод `LastIndexOf`, напротив, возвращает индекс последнего вхождения указанного символа или подстроки. Если символ или подстрока не найдены, возвращается -1.
Пример:
```csharp
string текст = "Привет, мир, мир!";
int последнийИндекс = текст.LastIndexOf("мир");
// последнийИндекс будет равен 13
```
Также как и `IndexOf`, метод `LastIndexOf` имеет несколько перегрузок, позволяющих указывать начальный индекс для поиска, количество символов для поиска и параметры сравнения.
Вот сигнатуры некоторых перегрузок метода `LastIndexOf` для класса `string` в C#:
1. `public int LastIndexOf(char value)`
2. `public int LastIndexOf(char value, int startIndex)`
3. `public int LastIndexOf(char value, int startIndex, int count)`
4. `public int LastIndexOf(string value)`
5. `public int LastIndexOf(string value, int startIndex)`
6. `public int LastIndexOf(string value, int startIndex, int count)`
7. `public int LastIndexOf(string value, StringComparison comparisonType)`
8. `public int LastIndexOf(string value, int startIndex, StringComparison comparisonType)`
9. `public int LastIndexOf(string value, int startIndex, int count, StringComparison comparisonType)`
Эти перегрузки позволяют проводить поиск с различными параметрами, такими как начальный индекс, количество символов для поиска и параметры сравнения.
Дальше разберем некоторые сигнатуры.
### Базовая сигнатура
```csharp
public int LastIndexOf(char value);
```
Пример:
```csharp
string str = "Hello, world!";
int index = str.LastIndexOf('l');
// index будет равен 10, потому что последний символ 'l' находится на 10-й позиции (индексация с 0)
```