/// <summary>
		/// Copies the hashtable elements to a NameValuePair array at the specified index.
		/// </summary>
		/// <param name="array">The NameValuePair array that is the destination of the hashtable items.</param>
		/// <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
		public void CopyTo(NameValuePair[] array, int arrayIndex)
		{
			var typedArray = array as NameValuePair[];

			if (array == null)
				throw new ArgumentNullException("array");
			if (typedArray == null)
				throw new InvalidCastException("array must be of type NameValuePair[]");
			if (arrayIndex < 0 || (typedArray.Length - arrayIndex) < this.hashTable.Keys.Count)
				throw new ArgumentOutOfRangeException("arrayIndex");

			foreach (object key in this.hashTable.Keys)
			{
				typedArray[arrayIndex++] = new NameValuePair((string)key, (string)this.hashTable[key]);
			}
		}