我有接受類型的參數IEnumerable(Of IEnumerable(Of MyType))
鑄造清單的IEnumerable((的的MyType)列出的)(IEnumerable的(的的MyType)的)
如果我以下的方法:
Dim list1 as new List(Of MyType) From { obj1, obj2 }
Dim list2 as new List(Of MyType) From { obj3, obj4 }
MyMethod({ list1, list2 })
它的工作原理是
。
如果我通過一個List(Of List(Of MyType))
它編譯但給人運行時錯誤,如下:
System.InvalidCastException: Unable to cast object of type
'System.Collections.Generic.List`1[System.Collections.Generic.List`1[MyType]]' to type
'System.Collections.Generic.IEnumerable`1[System.Collections.Generic.IEnumerable`1[MyType]]'
如果我通過一個MyType()()
它給編譯時錯誤,如下:
Value of type '2-dimensional array of MyType' cannot be converted to
'System.Collections.Generic.IEnumerable(Of System.Collections.Generic.IEnumerable(Of MyType))'
我目前使用.net 3.5。
這似乎是我所聽見的.NET 4
解決任何想法,以避免這個錯誤類似於Casting List<MyObject> to IEnumerable<MyInterface>的問題嗎?
感謝您的答覆。順便說一句,我真的不明白爲什麼{list1,list2}被接受。你能解釋我這種行爲嗎? – Teejay
另外,你能解釋我'收益率'嗎?已經看到它,但不知道如何以及爲什麼使用它。 – Teejay
我用更多的解釋和例子更新了我的答案。 – Jamey