Vb.net Linq将结果返回为列表

Vb.net Linq将结果返回为列表,vb.net,linq,Vb.net,Linq,您好,我被困在返回linq结果作为列表。我尝试转换,但未能作为列表返回。下面是我的代码。请帮忙。谢谢 Public Function GetConfigList(ByVal aConfig As TT_GENERAL_CONFIGURATION) As List(Of Config) Dim Data = From p In Db.TT_GENERAL_CONFIGURATION _ Select p If Data IsNot Nothing T

您好,我被困在返回linq结果作为列表。我尝试转换,但未能作为列表返回。下面是我的代码。请帮忙。谢谢

Public Function GetConfigList(ByVal aConfig As TT_GENERAL_CONFIGURATION) As List(Of Config)
    Dim Data = From p In Db.TT_GENERAL_CONFIGURATION _
               Select p

    If Data IsNot Nothing Then
        ConvertGeneralConfig(Data)
    Else
        Return Nothing
    End If
End Function

Private Function ConvertGeneralConfig(ByVal aConfig As TT_GENERAL_CONFIGURATION) As List(Of Config)

        Dim pConfig As New Config
        pConfig.ConfigID = aConfig.INTERNAL_NUM
        pConfig.ConfigType = aConfig.CONFIG_TYPE
        pConfig.ConfigName = aConfig.CONFIG_NAME
        pConfig.ConfigValue = aConfig.CONFIG_VALUE

        Return pConfig
    End Function

如果您只希望得到一个结果,请使用
First()

您的
数据现在只包含结果的第一个元素。如果没有找到
数据
则为空

更新

如果希望函数返回列表,则必须创建列表并返回:

Private Function ConvertGeneralConfig(ByVal aConfig As TT_GENERAL_CONFIGURATION) As List(Of Config)

        Dim pConfig As New Config
        pConfig.ConfigID = aConfig.INTERNAL_NUM
        pConfig.ConfigType = aConfig.CONFIG_TYPE
        pConfig.ConfigName = aConfig.CONFIG_NAME
        pConfig.ConfigValue = aConfig.CONFIG_VALUE

        Dim lst As New List(Of Config) 'Creates a list
        lst.Add(pConfig) ' add the object to the list
        Return lst  ' returns the list


    End Function

看起来你可能想用

If Data IsNot Nothing Then
    Return ConvertGeneralConfig(Data)
Else
    Return Nothing
End If

到底是什么问题?从代码的外观来看,可能是您正在从
ConvertGeneralConfig
返回单个
Config
项,或者您的
数据
变量将是查询结果,因此与方法签名不兼容。但由于您的代码无法按原样编译,很难说…@user3051461这对您有帮助吗?谢谢您的回复。如果我希望得到上面第一个函数的更多结果,我该怎么办?然后传入第二个函数进行转换。
If Data IsNot Nothing Then
    Return ConvertGeneralConfig(Data)
Else
    Return Nothing
End If