【发布时间】:2014-10-02 23:08:03
【问题描述】:
我编写了一个返回 DataTable 对象的函数。对于以下代码
Public Function GetArtikelsAbove50(ByVal limit As Integer) As DataTable
Dim query = _Set.Ten_Most_Expensive_Products.AsEnumerable.Where(Function(x) x.UnitPrice > limit) _
.GroupBy(Function(x) x.UnitPrice)
Return query.CopyToDataTable
End Function
query 是一个 System.Data.EnumerableRowCollection(Of SPTest.northwindDataSet.Ten_Most_Expensive_ProductsRow) 对象。代码运行,一切都很好。但如果我添加:
.GroupBy(Function(x) x.UnitPrice)
编译器为返回对象添加下划线 (query.CopyToDataTable)。查询现在是 System.Collections.Generic.IEnumerable(Of System.Linq.IGrouping(Of Decimal, SPTest.northwindDataSet.Ten_Most_Expensive_ProductsRow)) 对象,因此 CopyToDataTable 不再是其中的成员。由于我需要.GroupBy 函数(有些适用于.Sum))我正在寻找一种将它与.CopyToDataTable 结合使用的方法。这可能吗?如果可以,我该如何实现?
我想,mybe 返回一个DataView Objeckt(带有Return query.AsDataView)会起作用,但同样的错误。
提示: 在我的研究过程中,我发现在this 问题中,一位用户提到函数 .CopyToDataTable “仅限于 IEnumerable,不适用于 IEnumerable(of T)”。我对数据集不太熟悉,我不确定这是否有助于解决问题。只是想分享一下信息,也许有帮助。
【问题讨论】: