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