/// <summary>
        /// 遍历Array,可取到Array本身和元素位置
        /// </summary>
        /// <param name="array">Array本身</param>
        /// <param name="action">[Array本身,元素在数组中的位置]</param>
        public static void ForEach(this Array array, Action <Array, int[]> action)
        {
            if (array.Length == 0)
            {
                return;
            }
            var walker = new ArrayTraverse(array);

            do
            {
                action(array, walker.Position);
            }while (walker.Step());
        }
        /// <summary>
        /// 遍历Array重载,可取到当前遍历到的元素
        /// </summary>
        /// <param name="array">Array本身</param>
        /// <param name="action">[当前元素]</param>
        public static void ForEach <T>(this Array array, Action <T> action)
        {
            if (array.Length == 0)
            {
                return;
            }
            var walker = new ArrayTraverse(array);

            do
            {
                action((T)array.GetValue(walker.Position));
            }while (walker.Step());
        }