Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何测试对象是否为数组数组/锯齿数组_C#_Arrays_Types_Jagged Arrays - Fatal编程技术网

C# 如何测试对象是否为数组数组/锯齿数组

C# 如何测试对象是否为数组数组/锯齿数组,c#,arrays,types,jagged-arrays,C#,Arrays,Types,Jagged Arrays,我试图测试对象是什么类型的数组:1D、2D或数组数组数组/锯齿数组 以下是我尝试过的: if (o is Array && ((Array)o).Rank == 2) { Console.Write ("2D-Array: "); } /* else if (o[0] is Array) { Console.WriteLine ("Jagged Array: "); } */ else if (o is

我试图测试对象是什么类型的数组:1D、2D或数组数组数组/锯齿数组

以下是我尝试过的:

    if (o is Array && ((Array)o).Rank == 2) {
        Console.Write ("2D-Array:  ");
    } 
    /* else if (o[0] is Array) {
        Console.WriteLine ("Jagged Array:  ");
    } */
    else if (o is Array) {
        Console.Write ("1D-Array:  ");
    } 
但是中间测试不起作用,因为
无法将带[]的索引应用于“object”类型的表达式。


你还能怎么做?提前谢谢

由于
o
是一个
对象
,并且您没有将其作为数组装箱,因此此代码不会编译。这里有一个更简单的方法:

var arr = o as Array;
if(arr != null) 
{
    if(arr.Rank == 2) 
    {
        Console.Write ("2D-Array:  ");
    } 
    else if (arr.Length > 0 && arr.GetValue(0) is Array) 
    {
        Console.WriteLine ("Jagged Array:  ");
    } 
    else
    {
        Console.Write ("1D-Array:  ");
    }
}

你可以用。但是这个
newobject[]{newobject[0],3}
是锯齿状数组吗?你也不能索引
array
。@PetSerAl正确,我看到
array
implements
IList
,但我没有确定实现是否明确。固定的。