ReadOnlySpan<T> Структура

Определение

Предоставляет типобезопасную и безопасную для памяти реализацию непрерывной области произвольной памяти только для чтения.

generic <typename T>
public value class ReadOnlySpan
public struct ReadOnlySpan<T>
type ReadOnlySpan<'T> = struct
Public Structure ReadOnlySpan(Of T)

Параметры типа

T

Тип элементов в ReadOnlySpan<T> .

Наследование
ReadOnlySpan<T>

Комментарии

ReadOnlySpan<T> — Это структура ссылки , которая выделяется в стеке и никогда не может переключаться на управляемую кучу. Типы структур ref имеют ряд ограничений, чтобы гарантировать, что их нельзя повысить до управляемой кучи, в том числе что они не могут быть упакованы, захвачены в лямбда-выражениях, назначены переменным типа Object , назначены dynamic переменным и не могут реализовывать тип интерфейса.

ReadOnlySpan<T>Экземпляр часто используется для ссылки на элементы массива или части массива. Однако в отличие от массива, ReadOnlySpan<T> экземпляр может указывать на управляемую память, собственную память или управляемую память в стеке.

Конструкторы

ReadOnlySpan<T>(T[])

Создает новый объект ReadOnlySpan<T> по всему указанному массиву.

ReadOnlySpan<T>(T[], Int32, Int32)

Создает новый объект ReadOnlySpan<T>, который включает указанное число элементов массива, начиная с указанного индекса.

ReadOnlySpan<T>(Void*, Int32)

Создает объект ReadOnlySpan<T> из указанного числа элементов T, начиная с заданного адреса памяти.

Свойства

Empty

Возвращает пустой массив ReadOnlySpan<T>.

IsEmpty

Возвращает значение, указывающее на то, что текущий диапазон только для чтения пуст.

Item[Int32]

Возвращает элемент из диапазона только для чтения по начинающемуся с нуля индексу.

Length

Количество элементов в диапазоне только для чтения.

Методы

CopyTo(Span<T>)

Копирует содержимое этого объекта ReadOnlySpan<T> в назначение Span<T>.

Equals(Object)
Является устаревшей.
Является устаревшей.

Не поддерживается. Создает исключение NotSupportedException.

GetEnumerator()

Возвращает перечислитель для коллекции ReadOnlySpan<T>.

GetHashCode()
Является устаревшей.

Не поддерживается. Создает исключение NotSupportedException.

GetPinnableReference()

Возвращает доступную только для чтения ссылку на объект типа T, который может использоваться для закрепления.

Этот метод предназначен для поддержки компиляторов .NET и не предназначен для вызова пользовательским кодом.

Slice(Int32)

Формирует срез вне текущего диапазона только для чтения, который начинается с указанного индекса.

Slice(Int32, Int32)

Формирует срез вне текущего диапазона только для чтения, начиная с указанного индекса до указанной длины.

ToArray()

Копирует содержимое этого диапазона только для чтения в новый массив.

ToString()

Возвращает строковое представление объекта ReadOnlySpan<T>.

TryCopyTo(Span<T>)

Пытается копировать содержимое этого объекта ReadOnlySpan<T> в Span<T> и возвращает значение, указывающее, была ли выполнена операция.

Операторы

Equality(ReadOnlySpan<T>, ReadOnlySpan<T>)

Возвращает значение, указывающее, равны ли два экземпляра ReadOnlySpan<T>.

Implicit(ArraySegment<T> to ReadOnlySpan<T>)

Определяет неявное преобразование ArraySegment<T> в ReadOnlySpan<T>.

Implicit(T[] to ReadOnlySpan<T>)

Определяет неявное преобразование массива в ReadOnlySpan<T>.

Inequality(ReadOnlySpan<T>, ReadOnlySpan<T>)

Возвращает значение, указывающее, равны ли два экземпляра ReadOnlySpan<T>.

Методы расширения

BinarySearch<T>(ReadOnlySpan<T>, IComparable<T>)

Выполняет поиск значения во всем отсортированном массиве ReadOnlySpan<T>, используя заданный универсальный интерфейс IComparable<T>.

BinarySearch<T,TComparer>(ReadOnlySpan<T>, T, TComparer)

Выполняет поиск указанного значения во всем отсортированном массиве ReadOnlySpan<T>, используя заданный универсальный тип TComparer.

BinarySearch<T,TComparable>(ReadOnlySpan<T>, TComparable)

Выполняет поиск значения во всем отсортированном массиве ReadOnlySpan<T>, используя заданный универсальный тип TComparable.

Contains<T>(ReadOnlySpan<T>, T)

Указывает, найдено ли указанное значение в диапазоне, доступном только для чтения. Значения сравниваются с помощью IEquatable {T}.Equals (T).

EndsWith<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Определяет, отображается ли указанная последовательность в конце диапазона, доступного только для чтения.

IndexOf<T>(ReadOnlySpan<T>, T)

Выполняет поиск указанного значения и возвращает индекс его первого вхождения. Значения сравниваются с помощью IEquatable {T}.Equals (T).

IndexOf<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Выполняет поиск указанной последовательности и возвращает индекс ее первого вхождения. Значения сравниваются с помощью IEquatable {T}.Equals (T).

IndexOfAny<T>(ReadOnlySpan<T>, T, T)

Выполняет поиск первого индекса любого из указанных значений аналогичного вызову IndexOf несколько раз с помощью логического оператора ИЛИ.

IndexOfAny<T>(ReadOnlySpan<T>, T, T, T)

Выполняет поиск первого индекса любого из указанных значений аналогичного вызову IndexOf несколько раз с помощью логического оператора ИЛИ.

IndexOfAny<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Выполняет поиск первого индекса любого из указанных значений аналогичного вызову IndexOf несколько раз с помощью логического оператора ИЛИ.

LastIndexOf<T>(ReadOnlySpan<T>, T)

Выполняет поиск указанного значения и возвращает индекс его последнего вхождения. Значения сравниваются с помощью IEquatable {T}.Equals (T).

LastIndexOf<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Выполняет поиск указанной последовательности и возвращает индекс ее последнего вхождения. Значения сравниваются с помощью IEquatable {T}.Equals (T).

LastIndexOfAny<T>(ReadOnlySpan<T>, T, T)

Выполняет поиск последнего индекса любого из указанных значений аналогичного вызову LastIndexOf несколько раз с помощью логического оператора ИЛИ.

LastIndexOfAny<T>(ReadOnlySpan<T>, T, T, T)

Выполняет поиск последнего индекса любого из указанных значений аналогичного вызову LastIndexOf несколько раз с помощью логического оператора ИЛИ.

LastIndexOfAny<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Выполняет поиск последнего индекса любого из указанных значений аналогичного вызову LastIndexOf несколько раз с помощью логического оператора ИЛИ.

Overlaps<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Определяет, перекрываются ли две последовательности только для чтения в памяти.

Overlaps<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, Int32)

Определяет, перекрываются ли две последовательности только для чтения в памяти, и выводит смещение элементов.

SequenceCompareTo<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Определяет относительный порядок двух последовательностей только для чтения путем сравнения их элементов с помощью IComparable{T}.CompareTo (T).

SequenceEqual<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Определяет, равны ли две последовательности только для чтения, сравнивая элементы с помощью IEquatable{T}.Equals (T).

SequenceEqual<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, IEqualityComparer<T>)

Определяет, равны ли две последовательности, сравнивая элементы с помощью IEqualityComparer<T> .

StartsWith<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Определяет, отображается ли указанная последовательность в начале диапазона, доступного только для чтения.

Trim<T>(ReadOnlySpan<T>, T)

Удаляет все начальные и конечные вхождения указанного элемента из диапазона только для чтения.

Trim<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Удаляет все начальные и конечные вхождения набора элементов, указанного в диапазоне только для чтения, из диапазона только для чтения.

TrimEnd<T>(ReadOnlySpan<T>, T)

Удаляет все конечные вхождения указанного элемента из диапазона только для чтения.

TrimEnd<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Удаляет все конечные вхождения набора элементов, указанного в диапазоне только для чтения, из диапазона только для чтения.

TrimStart<T>(ReadOnlySpan<T>, T)

Удаляет все начальные вхождения указанного элемента из диапазона.

TrimStart<T>(ReadOnlySpan<T>, ReadOnlySpan<T>)

Удаляет все начальные вхождения набора элементов, указанного в диапазоне только для чтения, из диапазона.

Применяется к

См. также раздел