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

2024-04-14

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

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
    }
}

有两种主要方法可以实现此目的。或者通过casting http://msdn.microsoft.com/en-us/library/ms173105.aspx obj to an Array正如你所建议的:

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

或者使用as操作员 http://msdn.microsoft.com/en-us/library/cscsdfbt.aspx:

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

请注意,在这两个解决方案中,我将两者结合起来if一起使用条件 AND 运算符 http://msdn.microsoft.com/en-us/library/2a723cdk.aspx (&&)为简单起见。如果左侧评估为,则仅评估右侧true.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 如何检查一个对象是否是多维数组 的相关文章

随机推荐