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

注記として、InitialQuery の性質上、多くの構造化フィールドが必要なため、c.MyData を使用しています (クエリは、設計が不十分なために一貫性があまりないさまざまなテーブルから再利用されます)。

于 2011-03-16T00:50:36.840 に答える
0

この質問をチェックしてください - あなたのためのいくつかの有用なVBの例が含まれています: Using PredicateBuilder with VB.NET

于 2011-03-16T00:26:44.107 に答える