Mega Code Archive

 
Categories / C# / Collections Data Structure
 

CopyClone all the element from a dictionary to another

#region License and Copyright /* -------------------------------------------------------------------------  * Dotnet Commons Collections  *  *  * This library is free software; you can redistribute it and/or modify it   * under the terms of the GNU Lesser General Public License as published by   * the Free Software Foundation; either version 2.1 of the License, or   * (at your option) any later version.  *  * This library is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY   * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License   * for more details.   *  * You should have received a copy of the GNU Lesser General Public License   * along with this library; if not, write to the   *   * Free Software Foundation, Inc.,   * 59 Temple Place,   * Suite 330,   * Boston,   * MA 02111-1307   * USA   *   * -------------------------------------------------------------------------  */ #endregion using System; using System.Collections; using System.Text; namespace Dotnet.Commons.Collections {   ///     /// <summary>     ///    /// This utility class extends the operations for manipulating    /// Dictionary collections.   ///   ///   /// </summary>     ///    public class DictionaryUtils   {     private DictionaryUtils()     {           }     /// --------------------------------------------------------------------------     /// <summary>     /// Copy all the element from a dictionary to another. The destination dictionary     /// will be first cleared before the the copy is performed.      ///      /// If the source dictionary is empty. The Copy process will not occur. The Destination     /// dictionary will retain its contents.     /// <seealso cref="Add"/>     /// </summary>     /// <param name="srcDict">Dictionary to copy from</param>     /// <param name="destDict">Dictionary to copy to</param>     /// --------------------------------------------------------------------------     public static void Copy(IDictionary srcDict, ref IDictionary destDict)     {       if (srcDict == null)         throw new System.ArgumentNullException("Source Dictionary cannot be null.");       if (destDict == null)         throw new System.ArgumentNullException("Destination Dictionary cannot be null.");       if (srcDict.Count == 0)         return;       destDict.Clear();       foreach(object key in srcDict.Keys)       {         destDict.Add(key, srcDict[key]);       }     }     /// --------------------------------------------------------------------------     /// <summary>     /// Shallow cloning of a dictionary.     /// </summary>     /// <param name="srcDict">Dictionary to clone</param>     /// <returns>Cloned dictionary</returns>     /// --------------------------------------------------------------------------     public static IDictionary Clone(IDictionary srcDict)     {       Type srcDicType = srcDict.GetType();                IDictionary cloned = (IDictionary) Activator.CreateInstance(srcDicType);       Copy(srcDict, ref cloned);       return cloned;     }    } }