哪种变量类型可以容纳LinQ结果?

时间:2018-11-12 11:09:03

标签: vb.net linq

我有以下代码

Dim LinQuery = From product In AppData.ProductInfo
                       Where product.Product_Name Like Keyword Or
                           product.SubCatogory_Name Like Keyword Or
                           product.SWC Like Keyword
                       Select Brand = product.Brand_Name,
                           Name = product.Product_Name,
                           Code = product.Product_code,
                           Category = product.SubCatogory_Name,
                           InitialStock = product.Init_Stock,
                           CurrentStock = product.Current_Stock

有人可以告诉我哪种变量类型可以保存LinQ结果,在我的情况下为'LinQuery'。

我的意图是创建一个返回LinkQ结果的公共函数。为此,我必须编写函数返回的变量类型。

1 个答案:

答案 0 :(得分:2)

在这种情况下,您有一个anonymous type。如果要返回结果,请将数据投影到您创建的类中。例如(并且我的VB.Net非常生锈,因此可能需要调整)创建一个新类:

Public Class Foo
    Public Property Brand As String
    Public Property Name As String
    Public Property Code As String
    Public Property Category As String
    Public Property InitialStock As Integer
    Public Property CurrentStock As Integer
End Class

您的Linq查询将更改为此:

Dim query As IEnumerable(Of Foo) =
            From product In AppData.ProductInfo
            Where product.Product_Name Like Keyword Or
                  product.SubCatogory_Name Like Keyword Or
                  product.SWC Like Keyword
            Select New Foo With {
                .Brand = product.Brand_Name,
                .Name = product.Product_Name,
                .Code = product.Product_code,
                .Category = product.SubCatogory_Name,
                .InitialStock = product.Init_Stock,
                .CurrentStock = product.Current_Stock }
相关问题