C#将对象数组与布尔进行比较

本文关键字:布尔进 比较 数组 对象 | 更新日期: 2023-09-27 18:11:25

我有一个函数,它将向我返回每个元素中具有不同类型的对象数组。这是我努力实现的目标的一个小复制品。

public static object[] asset()
    {
        object[] tab = new object[11];
        tab[0] = bool;
        tab[1] = int;
        tab[2] = int;
        tab[3] = int;
        tab[4] = int;
        tab[5] = int;
        tab[6] = string;
        tab[7] = double;
        tab[8] = float;
        tab[9] = int;
        tab[10] = ""; //string
        return tab;
    }
    object[] testobject = new object[11];
    testobject = asset();
    If (testobject[0] = true)
    {
    }

所以我试图对对象[0]执行布尔检查,它是布尔。很明显,它不是这样工作的。我试着将object[0]转换为布尔值,然后测试它,这就是我对整数或双精度所做的,但它都不起作用。

有什么想法吗?

C#将对象数组与布尔进行比较

我认为您希望在检查之前进行强制转换,尽管很难说,因为您的代码中存在一些编译错误。

if ((bool)testobject[0] == true)
{
}

请注意使用==而不是=(这是一个赋值(。

您甚至可以将其缩短为:

if ((bool)testobject[0])
{
}

object[0] is bool如果是bool将生成true,如果不是false则生成CCD_6。

if (object[0] is bool) 
{
    bool myBool = (bool)object[0];
    // do something with myBool
}

如果您使用:

bool? myBool = object[0] as bool?;

则如果该值不是CCD_ 9则CCD_。

bool? myBool = object[0] as bool?;
if (myBool != null)
{
    // do something with myBool
}