ListItems有一个项总是给出类型不匹配异常.由于Listitems和MyItem之间存在某些类型不匹配,代码行'ListItems中的MyItem项'会引发异常.如何忽略类型不匹配异常并移至下一个元素.如果它进入foreach循环内部,我可以使用'continue'.但代码甚至没有进入每个循环
foreach (MyItem items in ListItems)
{
...Do...
}
Run Code Online (Sandbox Code Playgroud)
我建议使用IEnumerable.OfType.这就像is MyItem在每个项目上使用测试一样,只选择 - 然后循环 - 这样的测试成立的项目.(它实际上也执行强制转换,它确保了例外的结果序列类型,但只有它可以.)
foreach (var items in ListItems.OfType<MyItem>()) {
// items not "of" MyItem will be skipped
}
Run Code Online (Sandbox Code Playgroud)
另一方面,原始代码就像是(MyItem)对每个项目的直接强制转换,可能会因InvalidCastException而失败.