我有两个声明如下的列表:
Dim lstDBItems As New List(Of DBItem)
Dim lstAppItems As New List(Of AppItem)
我正在尝试做这样的事情:
我有一个返回List(Of AppItem)的函数:
Function GetAppItems() As List(Of AppItem)
'...
End Function
在上面的函数中,我填充lstDBItems,然后编写如下的return语句:
Return lstDBItems.Select(Function(x)
dim oItem As New AppItem()
oItem.Property1 = x.DbProperty1
'...
Return oItem
End Function)
奇怪的是代码编译,但在朗姆酒时间我得到一个类型的错误。做我想要达到的目的的正确方法是什么??
PS:请原谅截图篡改。
答案 0 :(得分:2)
代码不应该编译开始。检查你是否有Option Strict。
一旦你弄清楚为什么它不应该编译,你的选择是:
在查询结束时调用ToList
,如下所示:
Return lstDBItems.Select(Function(x)
dim oItem As New AppItem()
oItem.Property1 = x.DbProperty1
'...
Return oItem
End Function).ToList()
将退货类型更改为IEnumerable(Of AppItem)
答案 1 :(得分:0)
在ToList()
之后添加Select
以获得List(Of AppItem)
作为返回值
答案 2 :(得分:0)
Select
方法的结果是IEnumerable(Of AppItem)
类型,无法将其分配给List(Of AppItem
类型的变量。