Ниже простой кусок кода, который представляет собой рабочая версию, чтобы различать разные массивы, в основном между одномерными массивами с помощью GetType, а затем сравнивая его с помощью TypeOf для данного типа. Я уверен, что реализация может быть дополнительно оптимизирована, но этот пример дает сущность дифференциации между одномерными массивами, включая массив с зазубринами. Для Многомерные массивы ранга является достаточно хорошим
int[,] twoDimensionalArr = new int[1,1];
twoDimensionalArr[0,0] = 5;
Console.WriteLine("2D Array Rank :: " + twoDimensionalArr.Rank);
int[][] jaggedArray = new int[1][];
jaggedArray[0] = new int[1];
jaggedArray[0][0] = 1;
Console.WriteLine("Jagged Array Rank :: " + jaggedArray.Rank);
if (jaggedArray[0].GetType() == typeof(int[]))
Console.WriteLine("Jagged Array - Success");
else
Console.WriteLine("Jagged Array - Failure");
int[] oneDimensionalArray = new int[1];
oneDimensionalArray[0] = 3;
if (oneDimensionalArray[0].GetType() != typeof(int[]))
Console.WriteLine("One Dimensional Array - Success");
else
Console.WriteLine("One Dimensional Array - Failure");
выполнение кода Результат:
2D Array Rank :: 2
Jagged Array Rank :: 1
Jagged Array - Success
One Dimensional Array - Success
Вы можете использовать [ПолучитьЗначение] (http://msdn.microsoft.com/library/system.array .getvalue.aspx). Но этот «новый объект [] {новый объект [0], 3}« зубчатый массив? – PetSerAl