C#如何检查对象是否是多维数组

时间:2014-07-08 22:46:08

标签: c# reflection

我是C#的新手。我在C#中有一个Object,如何检查它是单个还是多维数组?

int[,] array = new int[2,3];
object obj = (object) array;
if(obj is Array)
{
    if(obj.Rank==2) // I need to cast obj to array first in order to call Rank
    {
        //do something
    }
}

1 个答案:

答案 0 :(得分:3)

有两种主要方法可以实现这一目标。根据您的建议,casting objArray

if(obj is Array && ((Array)obj).Rank == 2)
{
    //do something
}

或使用as operator

var arr = obj as Array;
if(arr != null && arr.Rank == 2)
{
    //do something
}

请注意,在这两种解决方案中,为了简单起见,我使用conditional AND operatorif)将两个&&组合在一起。如果左侧评估为true,则仅评估此右侧。