0

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全体を書き直す必要がありますか、それとも別の方法がありますか

4

1 に答える 1

2

はい、できます。さまざまなセクションで使用される型を使用して上部で変数を宣言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ずっと同じままです。各ブランチで変更されるのは、その定義だけです。

于 2013-08-25T06:50:18.533 に答える