假设我有一组对象,其中一些是数组。
我想连接所有值来打印它们,但我不知道数组中元素的类型。
foreach(var item in myList)
{
var val = item.Property;
if (val.GetType().IsArray)
{
var array = val as IEnumerable<object>;
val = string.Join(",", array);
}
DoSomething(val);
}
如果 val 包含 a string[],则此代码片段将起作用,也适用于 a myClass[]。
但是如果它包含一个int[]or double[],则数组将为空,这意味着动态转换失败。
如果 int 或 double 是从 System.TypeValue 继承的,而 System.TypeValue 是从 object 继承的,为什么此代码片段不起作用?
我怎么能做到这一点?
编辑:将代码片段更改为更明确,并避免出现错误的变量使用,因为我错误地简化了我的代码。
白板的微信
温温酱
相关分类