【问题标题】:Fastest way to check if a always changing set of strings contains a string检查一组总是变化的字符串是否包含字符串的最快方法
【发布时间】:2012-12-03 19:46:14
【问题描述】:

这就是我正在做的事情:

  1. 取一个字符串
  2. 检查HashSet是否包含字符串
  3. 如果没有,则将字符串添加到 HashSet(如果有,请执行其他操作)

这必须以最快的方式处理非常大的字符串数组

使用 HashSet 是检查字符串是否已经出现的最快方法,还是对 .net 4.5 有更好的方法?

【问题讨论】:

  • 是的,泛型类型是最快的方法!所以你使用的是泛型类型的 HashSet。

标签: c# arrays string comparison hashset


【解决方案1】:

HashSet.Add

如果元素被添加到 HashSet 对象,则返回 truefalse 如果元素已经存在。

HashSet<string> hs = new HashSet<string>();
bool b1 = hs.Add("xxx"); //returns true
bool b2 = hs.Add("xxx"); //returns false

【讨论】:

  • 值得注意的是HashSet&lt;T&gt;(IEqualityComparer&lt;T&gt;)应该用于字符串。
  • @m-y 你认为为什么需要它?
  • msdn.microsoft.com/en-us/library/azhsac5f.aspx -- 应该使用 StringComparer 而不是默认的比较器。此外,它在代码中明确说明了开发人员是否打算区分大小写/文化。这不是必需的,但只是一个更好的选择。
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-12
  • 2011-03-19
  • 2011-07-14
  • 2012-12-27
  • 1970-01-01
  • 2017-01-18
  • 2020-07-16
相关资源
最近更新 更多