/
TON618OFF
/
Unity-Project-RTU
Обзор
Документация
Войти
/
TON618OFF
/
Unity-Project-RTU
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Library/PackageCache/com.unity.visualscripting@1.9.4/Runtime/VisualScripting.Core/Collections/NonNullableDictionary.cs
169 строк
5 KB
TON618OFF
release
03 окт 2024, 22:20
03 окт 2024, 22:20
7c70e9f
Код
Авторство
О чём код?
using System; using System.Collections; using System.Collections.Generic; namespace Unity.VisualScripting { public class NonNullableDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IDictionary { public NonNullableDictionary() { dictionary = new Dictionary<TKey, TValue>(); } public NonNullableDictionary(int capacity) { dictionary = new Dictionary<TKey, TValue>(capacity); } public NonNullableDictionary(IEqualityComparer<TKey> comparer) { dictionary = new Dictionary<TKey, TValue>(comparer); } public NonNullableDictionary(IDictionary<TKey, TValue> dictionary) { this.dictionary = new Dictionary<TKey, TValue>(dictionary); } public NonNullableDictionary(int capacity, IEqualityComparer<TKey> comparer) { dictionary = new Dictionary<TKey, TValue>(capacity, comparer); } public NonNullableDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey> comparer) { this.dictionary = new Dictionary<TKey, TValue>(dictionary, comparer); } private readonly Dictionary<TKey, TValue> dictionary; public TValue this[TKey key] { get { return dictionary[key]; } set { dictionary[key] = value; } } object IDictionary.this[object key] { get { return ((IDictionary)dictionary)[key]; } set { ((IDictionary)dictionary)[key] = value; } } public int Count => dictionary.Count; public bool IsSynchronized => ((ICollection)dictionary).IsSynchronized; public object SyncRoot => ((ICollection)dictionary).SyncRoot; public bool IsReadOnly => false; public ICollection<TKey> Keys => dictionary.Keys; ICollection IDictionary.Values => ((IDictionary)dictionary).Values; ICollection IDictionary.Keys => ((IDictionary)dictionary).Keys; public ICollection<TValue> Values => dictionary.Values; public bool IsFixedSize => ((IDictionary)dictionary).IsFixedSize; public void CopyTo(Array array, int index) { ((ICollection)dictionary).CopyTo(array, index); } void ICollection<KeyValuePair<TKey, TValue>>.Add(KeyValuePair<TKey, TValue> item) { ((ICollection<KeyValuePair<TKey, TValue>>)dictionary).Add(item); } public void Add(TKey key, TValue value) { if (value == null) { throw new ArgumentNullException(nameof(value)); } dictionary.Add(key, value); } public void Add(object key, object value) { ((IDictionary)dictionary).Add(key, value); } public void Clear() { dictionary.Clear(); } public bool Contains(object key) { return ((IDictionary)dictionary).Contains(key); } IDictionaryEnumerator IDictionary.GetEnumerator() { return ((IDictionary)dictionary).GetEnumerator(); } public void Remove(object key) { ((IDictionary)dictionary).Remove(key); } bool ICollection<KeyValuePair<TKey, TValue>>.Contains(KeyValuePair<TKey, TValue> item) { return ((ICollection<KeyValuePair<TKey, TValue>>)dictionary).Contains(item); } public bool ContainsKey(TKey key) { return dictionary.ContainsKey(key); } void ICollection<KeyValuePair<TKey, TValue>>.CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex) { ((ICollection<KeyValuePair<TKey, TValue>>)dictionary).CopyTo(array, arrayIndex); } public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() { return dictionary.GetEnumerator(); } bool ICollection<KeyValuePair<TKey, TValue>>.Remove(KeyValuePair<TKey, TValue> item) { return ((ICollection<KeyValuePair<TKey, TValue>>)dictionary).Remove(item); } public bool Remove(TKey key) { return dictionary.Remove(key); } public bool TryGetValue(TKey key, out TValue value) { return dictionary.TryGetValue(key, out value); } IEnumerator IEnumerable.GetEnumerator() { return dictionary.GetEnumerator(); } } }