Beispiel #1
0
 ///<summary>
 ///</summary>
 ///<param name = "array"></param>
 public ArrayAnalyzer(object array)
 {
     _array = array;
     var type = array.GetType();
     _arrayInfo = GetArrayInfo(type);
 }
Beispiel #2
0
        private ArrayInfo GetArrayInfo(Type arrayType)
        {
            // Caching is innacceptable, as an array of type string can have different bounds

            var info = new ArrayInfo();

            // Fill the dimension infos
            for (var dimension = 0; dimension < GetRank(arrayType); dimension++) {
                var dimensionInfo = new DimensionInfo {
                    Length = GetLength(dimension, arrayType), LowerBound = GetLowerBound(dimension, arrayType)
                };
                info.DimensionInfos.Add(dimensionInfo);
            }

            return info;
        }