2012-02-03 134 views
0

林相当新,并试图写一个搜索结果查询。Linq查询比较收集是否包含字符串列表

我们为我们的服务台使用了标签系统,我试图从下拉列表中返回包含标签或子标签的所有案例。

我正在使用路径比较来查找任何儿童标签,当只有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

反向逻辑,在列表中选中的路径

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)))