Reckfell.Collections.Dictionary
Словарь Variant для C#: ключи, количество и копирование.
Класс C# из Reckfell.Collections, оборачивающий словарь Variant-ключей и Variant-значений движка. Не является System.Collections.Generic.Dictionary<TKey, TValue>; типизированная обёртка движка называется Reckfell.Collections.Dictionary<TKey, TValue>.
Присваивание копирует ссылку. Duplicate() создаёт отдельный верхний словарь; параметр deep определяет копирование вложенных массивов и словарей и не означает автоматическое клонирование всех объектов движка.
В C# словарь не имеет логического значения. Проверяйте Count == 0 или Count > 0, а отсутствие ссылки — через is null. Непустой словарь не подтверждает наличие конкретного ключа: проверяйте его отдельно.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
DictionaryКонструктор
public Dictionary();Возвращает тот же словарь, что и from. Если вам нужна копия словаря, используйте Reckfell.Collections.Dictionary.Duplicate.
Свойства5
CountСвойство
public int Count { get; }Возвращает количество элементов Reckfell.Collections.Dictionary.
Это также называется размером или длиной словаря.
IsReadOnlyСвойство
public bool IsReadOnly { get; }Возвращает true, если словарь доступен только для чтения. См. Reckfell.Collections.Dictionary.MakeReadOnly. Словари автоматически доступны только для чтения, если объявлены с ключевым словом const.
ItemСвойство
public Variant this[Variant key] { get; set; }Читает значение существующего ключа или задаёт значение ключа. При чтении отсутствующего ключа выбрасывает KeyNotFoundException; для проверки наличия используйте TryGetValue. Nil-значение существующего ключа отличается от отсутствия.
KeysСвойство
public System.Collections.Generic.ICollection<Variant> Keys { get; }Возвращает список ключей в словаре.
ValuesСвойство
public System.Collections.Generic.ICollection<Variant> Values { get; }Возвращает список значений в этом словаре.
Методы13
Addvoid
public void Add(Variant key, Variant value);Добавить значение value ключ key
к этому Reckfell.Collections.Dictionary.
| Имя | Тип | По умолчанию |
|---|---|---|
key | Variant | — |
value | Variant | — |
keyКлюч, с помощью которого можно повысить ценность.
valueЦена, которую можно добавить.
Clearvoid
public void Clear();Очищает словарь, удаляя из него все записи.
ContainsKeybool
public bool ContainsKey(Variant key);Проверяет, если это Reckfell.Collections.Dictionary содержит указанный ключ.
| Имя | Тип | По умолчанию |
|---|---|---|
key | Variant | — |
keyКлюч, который нужно искать.
boolСодержит ли этот словарь данный ключ или нет.
Dispose2 перегрузки
public void Dispose();Исключает это Reckfell.Collections.Dictionary.
public void Dispose(bool disposing);| Имя | Тип | По умолчанию |
|---|---|---|
disposing | bool | — |
DuplicateReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary Duplicate(bool deep = false);Возвращает новую копию словаря.
По умолчанию возвращается поверхностная копия: все вложенные ключи и значения Reckfell.Collections.Array, Reckfell.Collections.Dictionary и Resource используются совместно с исходным словарем. Изменение любого из них в одном словаре также повлияет на них в другом.
Если deep равен true, возвращается глубокая копия: все вложенные массивы и словари также дублируются (рекурсивно). Однако любой Resource по-прежнему используется совместно с исходным словарем.
| Имя | Тип | По умолчанию |
|---|---|---|
deep | bool | false |
deepЕсли true, выполняет глубокую копию.
Reckfell.Collections.DictionaryНовый Reckfell Словарь.
GetEnumeratorSystem.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<Variant, Variant>>
public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<Variant, Variant>> GetEnumerator();Получает счетчик для этого Reckfell.Collections.Dictionary.
System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<Variant, Variant>>Счетчик.
MakeReadOnlyvoid
public void MakeReadOnly();Делает словарь доступным только для чтения, т. е. отключает возможность изменения содержимого словаря. Не применяется к вложенному содержимому, например, содержимому вложенных словарей.
Mergevoid
public void Merge(Reckfell.Collections.Dictionary dictionary, bool overwrite = false);Добавляет записи из dictionary в этот словарь. По умолчанию дублирующиеся ключи не копируются, если только overwrite не равен true.
var dict = new Reckfell.Collections.Dictionary
{
["item"] = "sword",
["quantity"] = 2,
};
var otherDict = new Reckfell.Collections.Dictionary
{
["quantity"] = 15,
["color"] = "silver",
};
// Overwriting of existing keys is disabled by default.
dict.Merge(otherDict);
ReckfellApi.Print(dict); // { "item": "sword", "quantity": 2, "color": "silver" }
// With overwriting of existing keys enabled.
dict.Merge(otherDict, true);
ReckfellApi.Print(dict); // { "item": "sword", "quantity": 15, "color": "silver" }Примечание: Reckfell.Collections.Dictionary.Merge не рекурсивен. Вложенные словари рассматриваются как ключи, которые могут быть перезаписаны или нет в зависимости от значения overwrite, но они никогда не будут объединены вместе.
| Имя | Тип | По умолчанию |
|---|---|---|
dictionary | Reckfell.Collections.Dictionary | — |
overwrite | bool | false |
dictionaryСловарь для копирования записей из.
overwriteЕсли дубликат ключей также должен быть скопирован.
RecursiveEqualbool
public bool RecursiveEqual(Reckfell.Collections.Dictionary other);Возвращает true, если два словаря содержат одинаковые ключи и значения, внутренние ключи и значения Reckfell.Collections.Dictionary и Reckfell.Collections.Array сравниваются рекурсивно.
| Имя | Тип | По умолчанию |
|---|---|---|
other | Reckfell.Collections.Dictionary | — |
otherДругой словарь для сравнения.
booltrue если словари содержат одни и те же ключи и ценности,
false иначе.
Removebool
public bool Remove(Variant key);Удалить элемент из этого Reckfell.Collections.Dictionary По ключу.
| Имя | Тип | По умолчанию |
|---|---|---|
key | Variant | — |
keyКлюч к элементу, который нужно удалить.
boolToStringstring
public override string ToString();Преобразует это Reckfell.Collections.Dictionary к а string.
stringA string представление этого словаря.
TryGetValuebool
public bool TryGetValue(Variant key, out Variant value);Проверяет наличие ключа и возвращает его значение без исключения из-за отсутствия. True с Nil означает существующий ключ; false означает отсутствующий ключ и выходной Variant по умолчанию.
| Имя | Тип | По умолчанию |
|---|---|---|
key | Variant | — |
value | Variant | — |
keyКлюч для поиска по правилам сравнения ключей Dictionary.
valueПри успехе — значение ключа, включая Nil; при отсутствии — Variant по умолчанию. Контейнер внутри значения может быть общим.
boolTrue, если ключ существует, независимо от метки его значения.