public void CopyTo(AttributeLayeredValues other)
 {
     foreach (var layeredValues in inner)
     {
         foreach (var layeredValue in layeredValues.Value)
             other[layeredValues.Key][layeredValue.Key] = layeredValue.Value;
     }
 }
 public void CopyTo(AttributeLayeredValues other)
 {
     foreach (var layeredValues in inner)
     {
         foreach (var layeredValue in layeredValues.Value)
         {
             other[layeredValues.Key][layeredValue.Key] = layeredValue.Value;
         }
     }
 }
 public bool Equals(AttributeLayeredValues other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(other.inner.ContentEquals(inner));
 }
        public bool ContentEquals(AttributeLayeredValues other)
        {
            if (other.inner.Keys.Count != inner.Keys.Count)
                return false; // different number of keys
            if (!other.inner.Keys.All(key => inner.Keys.Contains(key)))
                return false; // different keys

            foreach (var theirs in other.inner)
            {
                var ours = inner[theirs.Key];

                if (!theirs.Value.ContentEquals(ours))
                    return false;
            }

            return true;
        }
        public bool ContentEquals(AttributeLayeredValues other)
        {
            if (other.inner.Keys.Count != inner.Keys.Count)
            {
                return(false); // different number of keys
            }
            if (!other.inner.Keys.All(key => inner.Keys.Contains(key)))
            {
                return(false); // different keys
            }
            foreach (var theirs in other.inner)
            {
                var ours = inner[theirs.Key];

                if (!theirs.Value.ContentEquals(ours))
                {
                    return(false);
                }
            }

            return(true);
        }
 public bool Equals(AttributeLayeredValues other)
 {
     if (ReferenceEquals(null, other)) return false;
     if (ReferenceEquals(this, other)) return true;
     return other.inner.ContentEquals(inner);
 }