我有一个dynamic
对象,有时它是一个object
,有时它是一个object[]
。
我该如何检查这个动态对象是否为数组?
使用Type.IsArray
:
来自MSDN:
int [] array = {1,2,3,4};
Type t = array.GetType();
// t.IsArray == true
Console.WriteLine("The type is {0}. Is this type an array? {1}", t, t.IsArray);
为什么不使用“is”运算符(我在Visual Studio调试器的即时窗口中进行了快速测试),它可以工作。但是不确定Tim的答案是否最佳。
void foo(object o)
{
if( o is System.Array)
{
//its array
}
}
int [] array = {1,2,3,4};
Type t1 = array.GetType();
// t1.IsArray == true
List<int> list = new List();
list.AddRange(array);
Type t2 = list.GetType();
//t2.IsArray = false;
//t2.IsSerializable = true;
foreach(var i in list) {
// do stuff
}
"some text".GetType().IsSerializable
也为真,但它不是数组或列表。 - gsubiran