【问题标题】:Linq Query to compare if collection contains list of stringLinq查询以比较集合是否包含字符串列表
【发布时间】:2012-02-03 17:37:15
【问题描述】:

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

【问题讨论】:

    标签: vb.net linq list collections


    【解决方案1】:

    反转逻辑,检查列表中的路径

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

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 1970-01-01
      • 2021-11-26
      • 2011-05-14
      • 2017-01-01
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 2016-08-29
      相关资源
      最近更新 更多