我对Linq很新,我正在尝试编写搜索结果查询。
我们在服务台使用标记系统,我试图返回包含从下拉列表中选择的标签或TAGS子项的所有案例。
我正在使用路径比较来查找任何只选择了1个标签的子标签。这是我选择多个标签时的代码,但它不起作用。你能指出我正确的方向吗?
单一标签选择(工作)
Dim tagpath = uxTags.SelectedItem.Text
lnqCases = From i In lnqCases Where i.HelpDeskTagItems.Any(Function(x) x.Path.StartsWith(tagpath))
多标签选择(不工作)
Dim tagpaths As New List(Of String)
For Each i In TagList.SelectedItems
tagpaths.Add(i.ToString)
Next
lnqCases = From i In lnqCases Where i.HelpDeskTagItems.Any(Function(x) x.Path.StartsWith(tagpaths.Any))
答案 0 :(得分:0)
反转逻辑,检查列表中的路径
lnqCases = From i In lnqCases Where i.HelpDeskTagItems.Any(Function(x) tagpaths.Contains(x.Path))
或继续使用StartsWith逻辑
lnqCases = From i In lnqCases Where i.HelpDeskTagItems.Any(Function(x) Test.Exists(Function(m) m.StartsWithPath(x)))