foreach未知类型

mat*_*lin 2 c# foreach

例如,我需要能够绕过未知类型

  foreach (var test in viewData["foobar"])
  {
  }
Run Code Online (Sandbox Code Playgroud)

有什么建议么

Ant*_*lev 7

您必须至少强制viewData["foobar"]转换IEnumerableobjecttest变量中包含。

强制转换可能会失败,因此您首先必须检查是否viewData["foobar"]实际IEnumerable使用isas运算符实现:

if(viewData["foobar"] is IEnumerable)
    foreach(var test in (IEnumerable)viewData["foobar"])
Run Code Online (Sandbox Code Playgroud)

请注意,这是使用System.Collections.IEnumerable,不是System.Collections.Generic.IEnumerable<>