0

我有一个列表框,如果城镇用户可以从列表中选择,我希望能够基于列表中的选定项目构建 LINQ 查询,例如

Dim ddlTowns As ListBox = CType(Filter_Accommodation1.FindControl("ddlTowns"), ListBox)
        If Not ddlTowns Is Nothing Then
            For Each Item In ddlTowns.Items
                If Item.Selected Then
                    '// Build query
                End If
            Next
        End If

我研究了 LinqKit,因为它似乎能够做我需要的事情,但经过数小时的尝试,我无法取得任何进展。我在 VB 中找不到任何有意义或可用的东西。

4

2 回答 2

1

只是有一个尤里卡时刻,而不是使用谓词我想出了这个......

Private Function Filter_Accommomdation_QueryBuilder() As IEnumerable

            Dim ddlTowns As ListBox = CType(Filter_Accommodation1.FindControl("ddlTowns"), ListBox)
            Dim myList As New List(Of String)
            If Not ddlTowns Is Nothing Then
                For Each Item In ddlTowns.Items
                    If Item.Selected Then
                        myList.Add(Item.value)
                    End If
                Next
            End If

            Dim Filter_Query = _
                       From c In InitialQuery _
                       Where myList.ToArray.Contains(c.MyData.element("townvillage").value) _
                       Select c
            Return Filter_Query


        End Function

作为一个注释,我使用 c.MyData 作为 InitialQuery 的性质需要许多结构化字段(查询是从各种表中重用的,这些表由于设计不佳而不太一致)。

于 2011-03-16T00:50:36.840 回答
0

查看这个问题 - 包含一些有用的 VB 示例:Using PredicateBuilder with VB.NET

于 2011-03-16T00:26:44.107 回答