C # String elemenths диапазон «:» эквивалент

1

Можно ли быстро отобразить диапазон элементов String elemenths, как в Python, с помощью: "Спасибо!

Например

Python
s="abazvbn"
print(s[2:5]) //It will display string elemenths from 2 to 5 ('azvb')

С# Возможно ли это сделать на С# без использования цикла. Поскольку в настоящее время это можно сделать так

String s="abazvbn"
for(int i=2;i<5;i++)
COnsole.WriteLine(s[i])
Теги:
string

1 ответ

4

Аналогично, у вас есть метод String.Substring(). Параметры немного разные. Вы передаете начальный индекс и длину возвращаемой подстроки.

Или вы можете создать метод расширения Slice(). Поместите его в статический класс.

public static class StringExtensions
{
    public static string Slice(this string s, int startIndex, int endIndex)
    {
    int length = endIndex - startIndex + 1;               // Calculate length
    return s.Substring(startIndex, length); // Return Substring of length
    }
}

Тогда вы можете использовать его вот так...

string mystring = "abazvbn";
string myslice = mystring.Splice(2, 5);//myslice is azvb
  • 0
    Следует отметить, что String.Substring() является довольно обидчивым методом - если вы превысите длину строки, вы получите вознаграждение ArgumentOutOfRangeException . Python намного более прощающий.
  • 0
    Ну, может быть, вы хотите, чтобы это было обидчивым. Если нет, то, конечно, переделайте его, чтобы он был более питоническим (я не могу вспомнить весь синтаксис Python на моей голове).
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню