Dis*_*ive 2 .net arrays string
我有一个非常非常大的未排序的字符串数组,我需要检查是否有重复.
检查这个的最有效方法是什么?
在最简单的方法可能是:
if (strings.Length != strings.Distinct().Count())
{
// There are duplicates
}
Run Code Online (Sandbox Code Playgroud)
这将是O(n) - 但它不会告诉你哪些项目是重复的.
或者:
HashSet<string> values = new HashSet<string>();
foreach (string x in strings)
{
if (!values.Add(x))
{
// x was a duplicate
}
}
Run Code Online (Sandbox Code Playgroud)
同样,这应该摊销O(n).
请注意,IEqualityComparer<string>如果您想要不区分大小写的比较,或者类似的东西,您可以指定不同的.
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |