我有一个空列表,其中包含'audi_b9_aismura'类型的模型,我希望用另一个列表中检索的对象填充该列表。
我知道这个对象属于指定的类型(audi_b9_aismura),但我不能将它添加到列表中,使用Convert.Changetype也不起作用。下面的代码抛出(在设计时)以下错误:无法从'object'转换为'.audi_B9_aismura'。
List<audi_b9_aismura> dataList = new List<audi_b9_aismura>();
if (obj.GetType().Equals(typeof(audi_b9_aismura)))
{
dataList.Add(Convert.ChangeType(obj, typeof(audi_b9_aismura)));
}
我也尝试过,这也不起作用。
audi_b9_aismura testVar = Convert.ChangeType(obj, typeof(audi_b9_aismura));
并且,将其转换为正常,但在添加时再说它是对象类型。
var testVar = Convert.ChangeType(obj, typeof(audi_b9_aismura));
dataList.Add(testVar);
如果我通过在字符串中填充它来检索对象类型,它将返回正确的类型(audi_b9_aismura)
string result = Convert.ChangeType(obj, typeof(audi_b9_aismura)).GetType().ToString();
答案 0 :(得分:4)
为什么不做一个简单的演员:
if (obj is audi_b9_aismura)
{
dataList.Add((audi_b9_aismura)obj);
}
正如本·罗宾逊在评论中所说,Convert.ChangeType()
会返回一个object
,但仍需要将其转换为正确的类型。
答案 1 :(得分:1)
尝试:
List<audi_b9_aismura> dataList = new List<audi_b9_aismura>();
if (obj is audi_b9_aismura)
{
dataList.Add((audi_b9_aismura)obj);
}
答案 2 :(得分:1)