/// <summary>
        /// Combines two arrays and returns a new array containing both values
        /// </summary>
        /// <typeparam name="ArrayType">Type of the data in the array</typeparam>
        /// <param name="Array1">Array 1</param>
        /// <param name="Array2">Array 2</param>
        /// <returns>A new array containing both arrays' values</returns>
        public static ArrayType[] Combine <ArrayType>(this ArrayType[] Array1, params ArrayType[][] Array2)
        {
            if (Array1.IsNull() && Array2.IsNull())
            {
                return(null);
            }
            int ResultLength = (Array1.IsNull() ? 0 : Array1.Length);

            if (Array2.IsNotNull())
            {
                foreach (ArrayType[] Array in Array2)
                {
                    ResultLength += (Array.IsNull() ? 0 : Array.Length);
                }
            }
            ArrayType[] ReturnValue   = new ArrayType[ResultLength];
            int         StartPosition = 0;

            if (Array1.IsNotNull())
            {
                Array.Copy(Array1, ReturnValue, Array1.Length);
                StartPosition = Array1.Length;
            }
            if (Array2.IsNotNull())
            {
                foreach (ArrayType[] TempArray in Array2)
                {
                    Array.Copy(TempArray, 0, ReturnValue, StartPosition, TempArray.Length);
                    StartPosition += TempArray.Length;
                }
            }
            return(ReturnValue);
        }