private Array GetArray(IPopulaterValueProvider valueProvider, Type type, string prefix, int depth)
        {
            Array array = null;

            if (type != null)
            {
                int itemCount = valueProvider.GetEnumerableSize();

                array = TryToCreateInstance(type, () => Array.CreateInstance(type, itemCount)) as Array;

                if (array != null)
                {
                    for (int i = 0; i < itemCount; i++)
                    {
                        string childPrefix = $"{prefix}[{i}]";
                        var    item        = GetValue(valueProvider, type, childPrefix, depth);
                        array.SetValue(item, i);
                    }
                }
            }

            return(array);
        }