示例#1
0
        public ArrayIndexEnumerator(Array value)
        {
            Type arrayType = value.GetType();

            rank   = arrayType.GetArrayRank();
            uppers = new int[rank];
            lowers = new int[rank];
            idx    = new int[rank];

            len = 1;
            for (int i = 0; i < rank; i++)
            {
                int high = uppers[i] = value.GetUpperBound(i);
                int low  = lowers[i] = value.GetLowerBound(i);
                if (low != 0)
                {
                    PrologCLR.Error("LowerBound !=0 in " + arrayType);
                }
                int lenSize = (high - low + 1);
                len *= lenSize;
            }
        }