【发布时间】:2012-07-26 08:40:13
【问题描述】:
我有一个列表变量,我想获取该列表的类型并将第二个变量转换为该类型。为了清楚起见,我添加了下面的代码。
目前我有以下:
return _ValueList.Any<FieldType>(x => x.Equals((FieldType)fieldValueObject));
我想做这样的事情:
Type valueType = _ValueList.GetType();
return _ValueList.Any<FieldType>(x => x.Equals((valueType)fieldValueObject));
任何帮助将不胜感激。
更新:
当 fieldValueObject 的类型为 Int16 并且我尝试将其强制转换为 Int32 时,将引发无效的强制转换异常。
更新 2:
我使用了以下解决方案:
if (fieldValueObject.GetType() == typeof(Int16))
{
fieldValueObject = Convert.ToInt32(fieldValueObject);
}
return _ValueList.Any<FieldType>(x => x.Equals(fieldValueObject));
它不漂亮,但它有效。
【问题讨论】:
-
你想要完成什么?您是否尝试使用字符串值过滤数字列表?查看函数的其余部分会有所帮助。
-
我正在尝试检查一个值是否存在于通用列表中。我正在测试的值是从数据库中检索的,当我将其转换为列表类型时,它会引发异常。