Индексатор Span
Запись span[i] меняет
ту же память, что и исходный
массив. Индекс за
Length
бросает IndexOutOfRangeException.
Только чтение -
ReadOnlySpan.
Синтаксис
int value = span[index];
span[index] = value;
Пример
Давайте прочитать нулевой элемент:
using System;
class Program
{
static void Main()
{
int[] data = { 1, 2, 3 };
Span<int> span = data;
int res = span[0];
Console.WriteLine(res);
}
}
Результат выполнения кода:
1
Пример
Давайте записать 9
в span[0]:
using System;
class Program
{
static void Main()
{
int[] data = { 1, 2, 3 };
Span<int> span = data;
span[0] = 9;
int res = span[0];
Console.WriteLine(res);
}
}
Результат выполнения кода:
9
Пример
Давайте обратиться к индексу за концом:
using System;
class Program
{
static void Main()
{
int[] data = { 1, 2, 3 };
Span<int> span = data;
try
{
int x = span[10];
Console.WriteLine(x);
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Смотрите также
-
Length,
число элементов -
Fill,
заполнить все ячейки -
ReadOnlySpan,
без записи -
Memory.Span,
доступ черезMemory