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

时间:2014-07-04 16:26:02

标签: c# .net

我有一个函数会返回一个每个元素中包含不同类型的对象数组。 这是我想要实现的小型复制品。

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]执行bool检查,这是一个bool。显然它不会像这样工作。我尝试将object [0]转换为boolean然后测试它,这是我对整数或双精度的操作,但它也不起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我认为你想在检查之前进行投射,虽然很难说你的代码中有一些编译错误。

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

}

请注意使用==代替=(这是一项作业)。

您甚至可以将其缩短为:

if ((bool)testobject[0])
{

}

答案 1 :(得分:1)

object[0] is bool如果是true,则会生成bool,如果不是false,则生成if (object[0] is bool) { bool myBool = (bool)object[0]; // do something with myBool }

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

如果您使用:

myBool

如果值不是null,那么bool将是bool? myBool = object[0] as bool?; if (myBool != null) { // do something with myBool } ,如果是,则它将具有布尔值。

{{1}}