Есть ли способ получить часть строки между двумя индексами в С#? Например, учитывая эту строку,
Hello, world!
Есть ли удобный способ передать "7" и "11" (индексы "w" и "d") и получить "мир"?
Обратите внимание, что я знаю о методе String.Substring() и знаю, что могу сделать следующее:
string s = "Hello, world!";
s.Substring(7, 11 - 7 + 1); // => "world"
Я также понимаю, что было бы тривиально создать метод расширения, такой как следующий:
public static class Extensions {
public static string SubstringByIndexes(this string str, int start, int end) {
return str.Substring(start, end - start + 1);
}
}
Тем не менее, я просто хотел убедиться, что нет встроенного способа, прежде чем я начну использовать этот метод в любых проектах, над которыми я работаю.
Вы можете использовать диапазоны, они были добавлены в C# 8. Обратите внимание, что последний индекс равен 12, а не 11, чтобы получить «мир».
string s = "Hello, world!";
string world = s[7..12];