///<summary> ///</summary> ///<param name = "array"></param> public ArrayAnalyzer(object array) { _array = array; var type = array.GetType(); _arrayInfo = GetArrayInfo(type); }
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; }