代码之家  ›  专栏  ›  技术社区  ›  Colin Mackay

有效识别第一组中的任何项是否与第二组中的任何项匹配

  •  1
  • Colin Mackay  · 技术社区  · 14 年前

    我有两个 IEnumerable<string> 表示字符串列表的。我想看看第一组中的任何元素是否与第二组中的任何元素匹配。现在我有一件事看起来像这样:

    firstSet.Intersect(secondSet).Count() > 0
    

    然而,在我看来效率相当低,因为它将生成一个匹配的元素列表,然后将它们全部计数。然后我可以测试计数是否大于零。我不在乎哪一场比赛,多少场比赛,只在乎两盘中的任何一个元素是否匹配。有类似的东西吗 firstSet.AnyMatch(secondSet) 我不见了?

    有没有更有效的表达方式?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Jon Skeet    14 年前

    Any

    if (firstSet.Intersect(secondSet).Any())
    

    firstSet secondSet

    HashSet<string> Overlaps

    HashSet<string> firstHashSet = (HashSet<string>) firstSet;
    if (firstHashSet.Overlaps(secondSet))
    {
        ...
    }