[英]C# Skip foreach loop when exception
ListItems具有一項始終會提供類型不匹配異常的項目。 代碼行“ ListItems中的MyItem項目”導致引發異常,因為Listitems和MyItem之間存在某些類型不匹配。 如何忽略類型不匹配異常並移至下一個元素。 如果它將進入foreach循環內,則可以使用“繼續”。 但是代碼甚至沒有為每個循環輸入
foreach (MyItem items in ListItems)
{
...Do...
}
我建議使用IEnumerable.OfType
。 這就像對每個項目使用is MyItem
測試,並且僅選擇-從而遍歷-這樣的測試為真的項目。 (實際上,它也執行強制類型轉換,以確保排除結果序列類型,但前提是可以) 。
foreach (var items in ListItems.OfType<MyItem>()) {
// items not "of" MyItem will be skipped
}
另一方面,原始代碼就像直接對每個項目(MyItem)
進行強制轉換 ,可能會因InvalidCastException而失敗。
您需要過濾掉,以便僅處理MyItem
項目。 確保包括System.Linq
命名空間並執行
foreach (MyItem items in ListItems.OfType<MyItem>())
{
...Do...
}
這將過濾您的列表,並且僅返回從MyItem
派生的項目
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.