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 回答