示例#1
0
        public void CopyFrom(InheritableDictionary source)
        {
            if (null == source)
            {
                throw new ArgumentNullException(nameof(source));
            }

            foreach (string key in source.LocalKeys())
            {
                Set(key, source.Get(key, false));
            }
        }
示例#2
0
        public IEnumerable <string> AllKeys()
        {
            List <string> existingKeys = new List <string>();

            InheritableDictionary pointer = this;

            do
            {
                foreach (string key in pointer.LocalKeys())
                {
                    if (!existingKeys.Contains(key))
                    {
                        existingKeys.Add(key);
                        yield return(key);
                    }
                }
                pointer = pointer.Parent;
            } while (null != pointer);
        }
示例#3
0
 public InheritableDictionaryKeyNotFoundException(InheritableDictionary inheritableDictionary, string key) : base(key)
 {
     InheritableDictionary = inheritableDictionary;
 }
示例#4
0
 public InheritableDictionary(InheritableDictionary parent, string level) : this(parent)
 {
     Level = level;
 }
示例#5
0
 public InheritableDictionary(InheritableDictionary parent) : this()
 {
     Parent = parent ?? throw new ArgumentNullException(nameof(parent));
 }