Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1019 of 1492 menu
◀ ▶

Метод Slice

Метод Slice не копирует данные. Запись в кусок меняет исходный массив. За границей бросают ArgumentOutOfRangeException. Аналог у Memory.Slice.

Синтаксис

Span<T> part = span.Slice(start, length);

Пример

Давайте взять Slice(1, 2) у { 1, 2, 3 }:

using System; class Program { static void Main() { int[] data = { 1, 2, 3 }; Span<int> piece = data.AsSpan().Slice(1, 2); Console.WriteLine(piece.Length); Console.WriteLine(piece[0]); } }

Результат выполнения кода:

2 2

Пример

Давайте изменить кусок и проверить массив:

using System; class Program { static void Main() { int[] data = { 1, 2, 3 }; Span<int> piece = data.AsSpan().Slice(1, 2); piece[0] = 9; int res = data[1]; Console.WriteLine(res); } }

Результат выполнения кода:

9

Пример

Давайте запросить Slice(0, 4) у трёх элементов:

using System; class Program { static void Main() { int[] data = { 1, 2, 3 }; Span<int> span = data; try { span.Slice(0, 4); } catch (ArgumentOutOfRangeException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"fail"

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить