Date: 23.03.2020 7:32:24
А что именно вы хотите реализовать? Пользуйтесь Array.Rank, Array.GetLengh, Array.Get(Set)Value и т.п.
Обход произвольного массива из вложенных друг в друга одномерных массивов например можно так реализовать:
static void PrintArrItem(Array arr, int index) { Type t = arr.GetType(); if (t.GetElementType().IsArray) { Array inner = (Array)arr.GetValue(index); Console.Write("["); for (int i = 0; i < inner.GetLength(0); i++) { if(i>=1) Console.Write(","); PrintArrItem(inner, i); } Console.Write("]"); } else { Console.Write(arr.GetValue(index)); } } static void Main(string[] args) { TestClass test = new TestClass(); test.F3 = new byte[][][] { new byte[][] { new byte[] { 1,2 } }, new byte[][] { new byte[] { 3,4 },new byte[] { 5 } } }; PropertyInfo pi = typeof(TestClass).GetProperty("F3"); Array arr = (Array)pi.GetValue(test); for (int i=0; i < arr.GetLength(0); i++) { if (i >= 1) Console.Write(","); PrintArrItem(arr, i); } Console.ReadKey(); }Обход произвольного многомерного массива, конечно реализовать посложнее, но суть будет та же - свести к массиву одномерных массивов и обойти рекурсивно.
Автор: VadimTagil