Opc.Ua.Com.ComUtils.VariantToObjectArray C# (CSharp) Method

VariantToObjectArray() private static method

Converts a Variant array to an Object array.
private static VariantToObjectArray ( Array input ) : Array
input System.Array
return System.Array
        private static Array VariantToObjectArray(Array input)
        {
            int[] dimensions = new int[input.Rank];

            for (int ii = 0; ii < dimensions.Length; ii++)
            {
                dimensions[ii] = input.GetLength(ii);
            }
            
            Array output = Array.CreateInstance(typeof(object), dimensions);
                                
            int length = output.Length;
            int[] indexes = new int[dimensions.Length];

            for (int ii = 0; ii < length; ii++)
            {
                int divisor = output.Length;

                for (int jj = 0; jj < indexes.Length; jj++)
                {
                    divisor /= dimensions[jj];
                    indexes[jj] = (ii/divisor)%dimensions[jj];
                }
                
                object value = input.GetValue(indexes);
                output.SetValue(GetVARIANT(value), indexes);
            }

            return output;
        }