Структура Range
Структура Range задаёт полуоткрытый
интервал для среза строки или массива.
Литерал start..end создаёт диапазон;
конец не включается. Для «до конца» пишут
start.., для всей длины - свойство
All.
Синтаксис
Range имя = start..end;
Пример
Давайте вырежем подстроку через диапазон:
using System;
class Program
{
static void Main()
{
string str = "abcde";
Console.WriteLine(str[1..4]);
}
}
Результат выполнения кода:
"bcd"
Пример
Давайте возьмём элементы массива с индекса 1 до 4:
using System;
class Program
{
static void Main()
{
int[] arr = { 1, 2, 3, 4, 5 };
int[] slice = arr[1..4];
Console.WriteLine(slice[0]);
}
}
Результат выполнения кода:
2
Пример
Давайте создадим Range явно и применим к строке:
using System;
class Program
{
static void Main()
{
string str = "abcde";
Range rng = 0..2;
Console.WriteLine(str[rng]);
}
}
Результат выполнения кода:
"ab"
Пример
Давайте возьмём хвост строки через диапазон с ^:
using System;
class Program
{
static void Main()
{
string str = "abcde";
Console.WriteLine(str[^3..]);
}
}
Результат выполнения кода:
"cde"