我需要能够循环一个未知类型,例如
foreach (var test in viewData["foobar"])
{
}
任何建议
答案 0 :(得分:4)
您必须至少将viewData["foobar"]
投射到IEnumerable
,才能在object
变量中添加test
。
演员表可能会失败,因此您首先要检查viewData["foobar"]
是否通过IEnumerable
或is
运算符实际实施as
:
if(viewData["foobar"] is IEnumerable)
foreach(var test in (IEnumerable)viewData["foobar"])
请注意,这是使用System.Collections.IEnumerable
,而不是System.Collections.Generic.IEnumerable<>
。
答案 1 :(得分:0)
如果viewData["foobar"]
属于类型对象,则无法迭代它。使用foreach循环进行迭代的唯一方法是使用IEnumerator派生类型。