1
我有一個SomeClass類,它可以從其構造函數中的數據行填充自身。這個類實現IInterface。然而,當我執行下面的代碼:LINQ查詢中從具體類轉換爲接口時的異常
Dim fpQuery As IEnumerable(Of IInterface) = _
From dr As DataRow In DataLayer.SomeMethodToGetADataTable.AsEnumerable _
Select New SomeClass(dr)
我得到
Unable to cast object of type
'System.Data.EnumerableRowCollection`1[Classes.SomeClass]'
to type
'System.Collections.Generic.IEnumerable`1[Interfaces.IInterface]'
我也許應該補充的是,下面的代碼工作正常的錯誤。
Dim fpQuery As IEnumerable(Of SomeClass) = _
From dr As DataRow In DataLayer.SomeMethodToGetADataTable.AsEnumerable _
Select New SomeClass(dr)
一樣簡單投
Dim myInterface As IInterface = New SomeClass(myDataRow)
任何想法?編輯: 喬恩Skeet得到它的發現。我使用下面的代碼,它完美地工作。
Dim fpQuery2 As IEnumerable(Of IInterface) = fpQuery.Cast(Of IInterface)
非常感謝 - 這正是我一直在尋找的。 – 2008-11-19 14:53:15