reckfellENGINE

Reckfell.Collections.Array

Коллекция Variant движка для C#; количество, копирование и отличие от T[].

На этой странице
class Reckfell.Collections.ArrayReckfellSharp

Класс C# из Reckfell.Collections, оборачивающий массив Variant движка. Используется на границе с API движка; это другой тип, чем массив C# T[] или List<T>. Для типизированной коллекции движка существует Reckfell.Collections.Array<T>.

Присваивание переменной копирует ссылку на коллекцию, не её элементы. Duplicate() создаёт отдельную верхнюю коллекцию; правила вложенного копирования определяются параметром deep. Не считайте ссылки на объекты движка автоматически клонированными.

В C# массив не преобразуется в bool. Для количества элементов используйте Count, например array.Count > 0. Если переменная может быть null, сначала проверьте array is not null. Пустая коллекция и отсутствие ссылки — разные состояния.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

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

Array10 перегрузок
# Array · 1/10
C#
public Array();

Создает массив из Vector4[].

# Array · 2/10
C#
public Array(Variant[] array);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
arrayVariant[]—
array

Объекты, которые будут помещены в новый массив.

# Array · 3/10
C#
public Array(System.Collections.Generic.IEnumerable<Variant> collection);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
collectionSystem.Collections.Generic.IEnumerable<Variant>—
collection

Коллекция элементов для построения.

# Array · 4/10
C#
public Array(ReadOnlySpan<EntityPath> span);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
spanReadOnlySpan<EntityPath>—
# Array · 5/10
C#
public Array(ReadOnlySpan<ReckfellObject> span);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
spanReadOnlySpan<ReckfellObject>—
# Array · 6/10
C#
public Array(ReadOnlySpan<Rid> span);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
spanReadOnlySpan<Rid>—
# Array · 7/10
C#
public Array(ReadOnlySpan<StringName> span);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
spanReadOnlySpan<StringName>—
# Array · 8/10
C#
public Array(Span<EntityPath> span);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
spanSpan<EntityPath>—
# Array · 9/10
C#
public Array(Span<Rid> span);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
spanSpan<Rid>—
# Array · 10/10
C#
public Array(Span<StringName> span);

Создает массив из Vector4[].

Параметры
ИмяТипПо умолчанию
spanSpan<StringName>—

Свойства3

CountСвойство
# Count
C#
public int Count { get; }

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

IsReadOnlyСвойство
# IsReadOnly
C#
public bool IsReadOnly { get; }

Returns (Возврат) true если массив только считывается. Reckfell.Collections.Array.MakeReadOnly. В C# массивы автоматически считываются только в том случае, если они указаны вместе с const Ключевое слово.

ItemСвойство
# Item
C#
public Variant this[int index] { get; set; }

Читает копию нативного Variant по индексу либо заменяет элемент копией присвоенного значения. Копия значения с контейнером может сохранять общие данные контейнера; индекс должен находиться в пределах Count.

Методы35

Addvoid
# Add
C#
public void Add(Variant item);

Добавляет к этому пункт. Reckfell.Collections.Array. Это то же самое, что и append или push_back Исключено из Скрипта.

Параметры
ИмяТипПо умолчанию
itemVariant—
item

:: Variant Пункт добавить.

AddRange3 перегрузки
# AddRange · 1/3
C#
public void AddRange<T>(System.Collections.Generic.IEnumerable<T> collection);

Добавляет элементы указанной коллекции к концу этой записи Reckfell.Collections.Array.

Параметры
ИмяТипПо умолчанию
collectionSystem.Collections.Generic.IEnumerable<T>—
collection

Сбор Variant пункты добавить.

# AddRange · 2/3
C#
public void AddRange<T>(ReadOnlySpan<T> span);

Добавляет элементы указанной коллекции к концу этой записи Reckfell.Collections.Array.

Параметры
ИмяТипПо умолчанию
spanReadOnlySpan<T>—
span

Продолжительность Variant пункты добавить.

# AddRange · 3/3
C#
public void AddRange<T>(T[] array);

Добавляет элементы указанного массива к концу этого Reckfell.Collections.Array.

Параметры
ИмяТипПо умолчанию
arrayT[]—
array

Множество Variant пункты добавить.

BinarySearch2 перегрузки
# BinarySearch · 1/2
C#
public int BinarySearch(Variant item);

Найти индекс существующего значения с помощью двоичного поиска. Если значение не присутствует в массиве, оно возвращает биту по стрелке дополнение индекса ввода, в котором сохраняется порядок сортировки. Примечание: Звонок Reckfell.Collections.Array.BinarySearch на непорочном Неожиданное поведение приводит к массиву.

Параметры
ИмяТипПо умолчанию
itemVariant—
item

Объект, который нужно найти.

Возвращает int

Указатель позиции в массиве, если item найдена; в противном случае отрицательное число, которое является битумным дополнением индекса следующего элемента, который больше item или, если не существует более крупного элемента, битумного дополнения Reckfell.Collections.Array.Count.

# BinarySearch · 2/2
C#
public int BinarySearch(int index, int count, Variant item);

Найти индекс существующего значения с помощью двоичного поиска. Если значение не присутствует в массиве, оно возвращает биту по стрелке дополнение индекса ввода, в котором сохраняется порядок сортировки. Примечание: Звонок Reckfell.Collections.Array.BinarySearch на Несортированный массив приводит к неожиданному поведению.

Параметры
ИмяТипПо умолчанию
indexint—
countint—
itemVariant—
index

Исходный индекс диапазона поиска.

count

Длина диапазона до поиска.

item

Объект, который нужно найти.

Возвращает int

Указатель позиции в массиве, если item найдена; в противном случае отрицательное число, которое является битумным дополнением индекса следующего элемента, который больше item или, если не существует более крупного элемента, битумного дополнения Reckfell.Collections.Array.Count.

Clearvoid
# Clear
C#
public void Clear();

Удаляет все элементы из массива. Это эквивалентно использованию Reckfell.Collections.Array.Resize с размером 0.

Containsbool
# Contains
C#
public bool Contains(Variant item);

Returns (Возврат) true если массив содержит заданное значение.

Параметры
ИмяТипПо умолчанию
itemVariant—
item

:: Variant вещь, которую нужно искать.

Возвращает bool

Неважно, содержит ли этот массив данный элемент.

CopyTovoid
# CopyTo
C#
public void CopyTo(Variant[] array, int arrayIndex);

Копии элементов этого документа Reckfell.Collections.Array к данным Variant С# массив, начиная с данного индекса.

Параметры
ИмяТипПо умолчанию
arrayVariant[]—
arrayIndexint—
array

Скопировать массив.

arrayIndex

Начнем с индекса.

Dispose2 перегрузки
# Dispose · 1/2
C#
public void Dispose();

Исключает это Reckfell.Collections.Array.

# Dispose · 2/2
C#
public void Dispose(bool disposing);
Параметры
ИмяТипПо умолчанию
disposingbool—
DuplicateReckfell.Collections.Array
# Duplicate
C#
public Reckfell.Collections.Array Duplicate(bool deep = false);

Создаёт новый внешний Array. При deep=false вложенные массивы и словари общие; deep=true копирует вложенные контейнеры, но не клонирует содержащиеся объекты движка.

Параметры
ИмяТипПо умолчанию
deepboolfalse
deep

Копировать ли вложенные контейнеры. Объекты движка остаются ссылками при любом значении.

Возвращает Reckfell.Collections.Array

Новый внешний Array с выбранной глубиной копирования контейнеров.

Fillvoid
# Fill
C#
public void Fill(Variant value);

Назначает заданное value всем элементам массива. Этот метод часто можно комбинировать с Reckfell.Collections.Array.Resize для создания массива с заданным размером и инициализированными элементами:

C#
Reckfell.Collections.Array array = [];
array.Resize(5);
array.Fill(2);
ReckfellApi.Print(array); // Prints [2, 2, 2, 2, 2]

Примечание: Если value является Variant, переданным по ссылке (производным от ReckfellObject, Reckfell.Collections.Array, Reckfell.Collections.Dictionary и т. д.), массив будет заполнен ссылками на одно и то же value, которые не являются дубликатами.

Параметры
ИмяТипПо умолчанию
valueVariant—
value

Значение для заполнения массива.

GetEnumeratorSystem.Collections.Generic.IEnumerator<Variant>
# GetEnumerator
C#
public System.Collections.Generic.IEnumerator<Variant> GetEnumerator();

Получает счетчик для этого Reckfell.Collections.Array.

Возвращает System.Collections.Generic.IEnumerator<Variant>

Счетчик.

GetSliceRangeReckfell.Collections.Array
# GetSliceRange
C#
public Reckfell.Collections.Array GetSliceRange(int start, int end, int step = 1, bool deep = false);

Возвращает кусочек Reckfell.Collections.Array, от start (включая) end (исключительно) в качестве нового Reckfell.Collections.Array. Абсолютное значение start и end будет зажата до размера массива. Если: start или end отрицательный, они будет относительно конца массива (т.е. arr.GetSliceRange(0, -2) это короткая вещь для arr.GetSliceRange(0, arr.Count - 2)). Если указывается, step - относительный индекс между источником Это может быть отрицательно. start должно быть выше, чем end. Например, [0, 1, 2, 3, 4, 5].GetSliceRange(5, 1, -2) возврат [5, 3]. Если deep верно, каждый элемент будет копироваться по значению а не путем ссылки.

Параметры
ИмяТипПо умолчанию
startint—
endint—
stepint1
deepboolfalse
start

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

end

Индекс, основанный на нулевом значении, на котором этот диапазон заканчивается.

step

Относительный индекс между элементами источника.

deep

Если true, выполняет глубокую копию.

Возвращает Reckfell.Collections.Array

Новый массив, содержащий элементы внутри диапазона кусочков.

IndexOf2 перегрузки
# IndexOf · 1/2
C#
public int IndexOf(Variant item);

Поиск массива для значения и возврат его индекса или -1 если не найдется.

Параметры
ИмяТипПо умолчанию
itemVariant—
item

:: Variant вещь, которую нужно искать.

Возвращает int

Указатель продукта или -1, если не найден.

# IndexOf · 2/2
C#
public int IndexOf(Variant item, int index);

Поиск массива для значения и возврат его индекса или -1 если не найдется.

Параметры
ИмяТипПо умолчанию
itemVariant—
indexint—
item

:: Variant вещь, которую нужно искать.

index

Первоначальный поисковый индекс для начала.

Возвращает int

Указатель продукта или -1, если не найден.

Insertvoid
# Insert
C#
public void Insert(int index, Variant item);

Вставляет новый элемент (value) по указанному индексу (position) в массиве. position должен быть между 0 и size массива. Если отрицательно, position считается относительно конца массива. Возвращает OK в случае успеха или одну из других констант Error, если этот метод не выполняется. Примечание: Индекс каждого элемента после position необходимо сместить вперед, что может иметь заметные потери производительности, особенно в больших массивах.

Параметры
ИмяТипПо умолчанию
indexint—
itemVariant—
index

Указатель, который следует вставить на.

item

:: Variant Вставить пункт.

LastIndexOf2 перегрузки
# LastIndexOf · 1/2
C#
public int LastIndexOf(Variant item);

Поиск массива для значения в обратном порядке и возврат его индекса или -1 если не найдется.

Параметры
ИмяТипПо умолчанию
itemVariant—
item

:: Variant вещь, которую нужно искать.

Возвращает int

Указатель продукта или -1, если не найден.

# LastIndexOf · 2/2
C#
public int LastIndexOf(Variant item, int index);

Поиск массива для значения в обратном порядке и возврат его индекса или -1 если не найдется.

Параметры
ИмяТипПо умолчанию
itemVariant—
indexint—
item

:: Variant вещь, которую нужно искать.

index

Первоначальный поисковый индекс для начала.

Возвращает int

Указатель продукта или -1, если не найден.

MakeReadOnlyvoid
# MakeReadOnly
C#
public void MakeReadOnly();

Сделает массив только считываемым. Элементы массива не могут быть перегружены различными значениями, и их порядок не может измениться. Не применяется к таким встроенным элементам, как словари. В C# массивы автоматически считываются только в том случае, если они указаны вместе с const Ключевое слово.

MaxVariant
# Max
C#
public Variant Max();

Возвращает максимальное значение, содержащееся в массиве, если все элементы можно сравнить. В противном случае возвращает null. См. также Reckfell.Collections.Array.Min. Чтобы найти максимальное значение с помощью пользовательского компаратора, можно использовать reduce.

Возвращает Variant

Максимальное значение, содержащееся в массиве.

MinVariant
# Min
C#
public Variant Min();

Возвращает минимальное значение, содержащееся в массиве, если все элементы можно сравнить. В противном случае возвращает null. См. также Reckfell.Collections.Array.Max.

Возвращает Variant

Минимальное значение, содержащееся в массиве.

PickRandomVariant
# PickRandom
C#
public Variant PickRandom();

Возвращает случайный элемент из массива. Генерирует ошибку и возвращает null, если массив пуст.

C#
Reckfell.Collections.Array array = [1, 2, 3.25f, "Hi"];
ReckfellApi.Print(array.PickRandom()); // May print 1, 2, 3.25, or "Hi".

Примечание: Как и многие подобные функции в движке (например, ReckfellApi.Randi или Reckfell.Collections.Array.Shuffle), этот метод использует общее глобальное случайное начальное число. Чтобы получить предсказуемый результат от этого метода, см. ReckfellApi.Seed.

Возвращает Variant

Случайный элемент из массива.

RecursiveEqualbool
# RecursiveEqual
C#
public bool RecursiveEqual(Reckfell.Collections.Array other);

Сравнит это Reckfell.Collections.Array против other Reckfell.Collections.Array Рекурсивно. Возвращение true если: Размеры и содержимое массивов равны, false иначе.

Параметры
ИмяТипПо умолчанию
otherReckfell.Collections.Array—
other

Другой массив, который можно сравнить с.

Возвращает bool

true если размеры и содержимое массивов равны, false иначе.

Removebool
# Remove
C#
public bool Remove(Variant item);

Удалить первое из указанных случаев item от этого Reckfell.Collections.Array.

Параметры
ИмяТипПо умолчанию
itemVariant—
item

Значение удаления.

Возвращает bool
RemoveAtvoid
# RemoveAt
C#
public void RemoveAt(int index);

Удаляет элемент из массива по заданному индексу (position). Если индекс выходит за пределы массива, этот метод завершается ошибкой. Если индекс отрицательный, position считается относительным к концу массива. Если вам нужно вернуть удаленный элемент, используйте pop_at. Для удаления элемента по значению используйте erase вместо этого. Примечание: Этот метод сдвигает индекс каждого элемента после position назад, что может заметно снизить производительность, особенно в больших массивах.

Параметры
ИмяТипПо умолчанию
indexint—
index

Указатель элемента, подлежащего удалению.

ResizeError
# Resize
C#
public Error Resize(int newSize);

Устанавливает количество элементов массива равным size. Если size меньше текущего размера массива, элементы в конце удаляются. Если size больше, добавляются новые элементы по умолчанию (обычно null) в зависимости от типа массива. Возвращает OK в случае успеха или одну из следующих констант Error, если этот метод не срабатывает: ERR_LOCKED, если массив доступен только для чтения, ERR_INVALID_PARAMETER, если размер отрицательный, или ERR_OUT_OF_MEMORY, если выделение памяти не удается. Используйте size, чтобы узнать фактический размер массива после изменения размера. Примечание: Вызов этого метода один раз и назначение новых значений выполняется быстрее, чем вызов append для каждого нового элемента.

Параметры
ИмяТипПо умолчанию
newSizeint—
newSize

Новый размер массива.

Возвращает Error

Error.Ok в случае успеха, или код ошибки.

Reversevoid
# Reverse
C#
public void Reverse();

Меняет порядок всех элементов в массиве на обратный.

Shufflevoid
# Shuffle
C#
public void Shuffle();

Перемешивает все элементы массива в случайном порядке. Примечание: Как и многие подобные функции в движке (например, ReckfellApi.Randi или Reckfell.Collections.Array.PickRandom), этот метод использует общее глобальное случайное начальное число. Чтобы получить предсказуемый результат от этого метода, см. ReckfellApi.Seed.

Slice2 перегрузки
# Slice · 1/2
C#
public Reckfell.Collections.Array Slice(int start);

Возвращает новый Reckfell.Collections.Array, содержащий элементы этого массива, от индекса begin (включительно) до end (исключительно), каждые step элементов. Если begin или end отрицательны, их значение относительно конца массива. Если step отрицателен, этот метод выполняет итерацию по массиву в обратном порядке, возвращая срез, упорядоченный в обратном порядке. Чтобы это работало, begin должен быть больше end. Если deep равен true, все вложенные элементы Reckfell.Collections.Array и Reckfell.Collections.Dictionary в срезе дублируются из оригинала, рекурсивно. См. также Reckfell.Collections.Array.Duplicate.

Параметры
ИмяТипПо умолчанию
startint—
start

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

Возвращает Reckfell.Collections.Array

Новый массив, содержащий элементы внутри диапазона кусочков.

# Slice · 2/2
C#
public Reckfell.Collections.Array Slice(int start, int length);

Возвращает новый Reckfell.Collections.Array, содержащий элементы этого массива, от индекса begin (включительно) до end (исключительно), каждые step элементов. Если begin или end отрицательны, их значение относительно конца массива. Если step отрицателен, этот метод выполняет итерацию по массиву в обратном порядке, возвращая срез, упорядоченный в обратном порядке. Чтобы это работало, begin должен быть больше end. Если deep равен true, все вложенные элементы Reckfell.Collections.Array и Reckfell.Collections.Dictionary в срезе дублируются из оригинала, рекурсивно. См. также Reckfell.Collections.Array.Duplicate.

Параметры
ИмяТипПо умолчанию
startint—
lengthint—
start

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

length

Длина диапазона.

Возвращает Reckfell.Collections.Array

Новый массив, содержащий элементы внутри диапазона кусочков.

Sortvoid
# Sort
C#
public void Sort();

Сортирует массив в порядке возрастания. Окончательный порядок зависит от сравнения "меньше" (<) между элементами.

C#
Reckfell.Collections.Array numbers = [10, 5, 2.5, 8];
numbers.Sort();
ReckfellApi.Print(numbers); // Prints [2.5, 5, 8, 10]

Примечание: Используемый алгоритм сортировки не является стабильным. Это означает, что эквивалентные элементы (такие как 2 и 2.0) могут иметь измененный порядок при вызове Reckfell.Collections.Array.Sort.

ToStringstring
# ToString
C#
public override string ToString();

Преобразует это Reckfell.Collections.Array к а string.

Возвращает string

A string представительство этого массива.

op_AdditionReckfell.Collections.Array
# op_Addition
C#
public static Reckfell.Collections.Array operator +(Reckfell.Collections.Array left, Reckfell.Collections.Array right);

Сокращает два Reckfell.Collections.Arrays вместе, с right добавлено к концу Reckfell.Collections.Array указано в left. Например, [1, 2] + [3, 4] результаты: [1, 2, 3, 4].

Параметры
ИмяТипПо умолчанию
leftReckfell.Collections.Array—
rightReckfell.Collections.Array—
left

Первый массив.

right

Второй набор.

Возвращает Reckfell.Collections.Array

Новый Reckfell Аррей с содержимым обоих массивов.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.