/// <summary>
        /// Method to copy the data in this Sparse6DMatrix instance to another instance.
        /// </summary>
        /// <param name="sparse6DMatrix">An instance of the Sparse6DMatrix class.</param>
        public void CopyTo(Sparse6DMatrix <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5, TValue> sparse6DMatrix)
        {
            sparse6DMatrix.m_dictionary.Clear();

            // Copy each key value pair to the dictionary.
            foreach (KeyValuePair <ComparableTuple6 <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5>, TValue> pair in m_dictionary)
            {
                ComparableTuple6 <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5> newCombinedKey = new ComparableTuple6 <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5>(pair.Key);
                sparse6DMatrix.m_dictionary.Add(newCombinedKey, pair.Value);
            }
        }
        /// <summary>
        /// Method to copy the data in another Sparse6DMatrix instance to this instance.
        /// </summary>
        /// <param name="sparse6DMatrix">An instance of the Sparse6DMatrix class.</param>
        private void Initialize(Sparse6DMatrix <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5, TValue> sparse6DMatrix)
        {
            m_dictionary.Clear();

            // Copy each key value pair to the dictionary.
            foreach (KeyValuePair <ComparableTuple6 <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5>, TValue> pair in sparse6DMatrix)
            {
                ComparableTuple6 <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5> newCombinedKey = new ComparableTuple6 <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5>(pair.Key);
                m_dictionary.Add(newCombinedKey, pair.Value);
            }
        }
 /// <summary>
 /// Copy constructor.
 /// </summary>
 /// <param name="sparse6DMatrix">The sparse array instance to be copied</param>
 public Sparse6DMatrix(Sparse6DMatrix <TKey0, TKey1, TKey2, TKey3, TKey4, TKey5, TValue> sparse6DMatrix)
 {
     InitializeDictionary();
     Initialize(sparse6DMatrix);
     DefaultValue = sparse6DMatrix.DefaultValue;
 }