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