[英]c#: Convert object to a generic list
我有一个数据结构,其中变量是object
类型。 但是,我知道在运行时此对象肯定是List<T>
,其中T
应该涵盖多种情况(例如int
, string
,...)。 在以下代码中,我想使用特定于List<T>
功能,例如Linq函数。
通过以下检查,我确定它是一个列表:
if (constantExpression.Value.GetType().GetGenericTypeDefinition() == typeof(List<>))
{
// Want to use Linq here
}
这可能吗? 不幸的是,我发现网上没有任何帮助。
如果可以将列表作为List<object>()
,则可以执行以下操作:
var listOfObjects = ((IEnumerable)constantExpression.Value).Cast<object>();
这远非完美,但如果您不想像评论中所建议的那样使用反射或使用dynamic
,那可能是最好的选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.