ユーザーが複数のオプションを選択できるCheckedListBoxのフォームがあります(ディレクトリfilelistをフィルタリングしています - フィルタリングされたファイルは2番目のリストボックスに表示されます)。LINQ条件付きクエリで "Or"を使用する
私は、このようなクエリで使用「または」可能性オプションのセット数を持っていた場合:
Dim query = From f As System.IO.FileInfo In StartList
Where f.Name.Contains("Romania")
Where f.Channel = "Channel1" Or f.Channel = "Channel2"
しかし、人は、オプション(またはnone)のいずれかの番号をクリックすることができますように私は行うことはできませんこの。 私は、複数のサブクエリを作成してそれらにユニオンを実行しようとするなどいくつかのことを試しましたが、動作させることはできません。
これは、これまでの私のコードです:あなたの助けのための
Dim Channels = ChannelListBox.CheckedItems
Dim query = From f As System.IO.FileInfo In StartList
Where f.Name.Contains("Romania")
If Channels.Count > 0 Then
Dim CurrentName As String = Channels(0).ToString
Dim Subquery = From g As System.IO.FileInfo In query
Where (g.Name.Contains(CurrentName))
For i = 1 To Channels.Count - 1
CurrentName = Channels(i).ToString
Dim Subquery2 = From h As System.IO.FileInfo In query
Where (h.Name.Contains(CurrentName))
Subquery = Subquery.Union(Subquery2)
Next i
FileListBox.DataSource = Subquery.ToList
Else
FileListBox.DataSource = query.ToList
End If
おかげで、 アンドリュー
私は[Predicate Builder](http://www.albahari.com/nutshell/predicatebuilder.aspx)はあなたが探しているものだと思います! – Flowerking