代码之家  ›  专栏  ›  技术社区  ›  Diskdrive

检查字符串数组中是否有重复项的最有效方法是什么。网

  •  2
  • Diskdrive  · 技术社区  · 14 年前

    我有一个非常非常大的未排序字符串数组,我需要检查是否有重复项。

    最有效的检查方法是什么?

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

    简单的 方法可能是:

    if (strings.Length != strings.Distinct().Count())
    {
        // There are duplicates
    }
    

    哪一个

    或者:

    HashSet<string> values = new HashSet<string>();
    foreach (string x in strings)
    {
        if (!values.Add(x))
        {
            // x was a duplicate
        }
    }
    

    同样,这应按O(n)摊销。

    IEqualityComparer<string>

        2
  •  0
  •   Sjoerd    14 年前