LINQ を使用したいが、いくつかの要因に依存する
If cbo1.SelectedIndex > -1 Then
'LINQ filter
End If
If me.cbo2SelectedIndex > -1 Then
'Filtering the LINQ again with data from the first combobox...
End If
LINQ全体を書き直す必要がありますか、それとも別の方法がありますか
はい、できます。さまざまなセクションで使用される型を使用して上部で変数を宣言IQueryable
し、ロジックに基づいてフィルターを選択的に適用します。
Dim query = InitializeQuery() ' returns type IQueryable(Of YourCustomClass)
If cbo1.SelectedIndex > -1 Then
'LINQ filter
query = from x in query
where x.Condition1 = cbo1.SelectedValue
select x
End If
If me.cbo2SelectedIndex > -1 Then
'Filtering the LINQ again with data from the first combobox...
query = from x in query
where x.Condition2 = cbo2SelectedIndex.SelectedValue
select x
End If
の種類はquery
ずっと同じままです。各ブランチで変更されるのは、その定義だけです。