我想使用 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
始终保持不变。每个分支中唯一变化的是它的定义。