/// <summary>
        /// DavPropertyAttribute Clone
        /// </summary>
        /// <remarks>Deep copy</remarks>
        /// <returns></returns>
        public DavPropertyCollection Clone()
        {
            // Start with a flat, memberwise copy
            DavPropertyCollection _davPropertyCollection = new DavPropertyCollection();

            // Then deep-copy everything that needs the
            foreach (DavProperty _davProperty in this)
            {
                _davPropertyCollection.Add(_davProperty.Clone());
            }

            return(_davPropertyCollection);
        }
        /// <summary>
        /// Copy an existing property collection
        /// </summary>
        /// <param name="propertyCollection"></param>
        public void Copy(DavPropertyCollection propertyCollection)
        {
            if (propertyCollection == null)
            {
                throw new ArgumentNullException("propertyCollection", InternalFunctions.GetResourceString("ArgumentNullException", "PropertyCollection"));
            }

            base.Clear();
            foreach (DavProperty _davProperty in propertyCollection)
            {
                if (_davProperty.Name != null)
                {
                    this.Add(_davProperty.Clone());
                }
            }
        }