【问题标题】:C# How to check if an object is a multi-dimensional arrayC#如何判断一个对象是否为多维数组
【发布时间】:2014-07-09 06:53:09
【问题描述】:

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

【问题讨论】:

    标签: c# reflection


    【解决方案1】:

    有两种主要方法可以实现这一点。按照您的建议,通过castingobjArray

    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 operator (&&) 将两个 if 组合在一起。这只会在左侧评估为 true 时评估此右侧。

    【讨论】:

    • 谢谢!刚刚意识到我可以将它转换为 Array 而不是 int[] 或 int[,]
    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多