isprefix是否比在C#中比较两个字符串更昂贵?

isprefix是否比在C#中比较两个字符串更昂贵?,c#,string,comparison,C#,String,Comparison,我正在做一些比较两个字符串的计算。如果我知道它们的长度相同,那么调用isprefix或If(“string”=“string”)会更昂贵吗?为什么不进行测试?很容易使用StopWatch类进行比较,并包含不同长度的字符串和不同的比较选项 我预计在核心方面不会有显著差异,因为IsPrefix基本上是: public bool IsPrefix(string comp, string prefix) { return Compare(comp, 0, prefix.Length, prefix,

我正在做一些比较两个字符串的计算。如果我知道它们的长度相同,那么调用isprefix或If(“string”=“string”)会更昂贵吗?

为什么不进行测试?很容易使用StopWatch类进行比较,并包含不同长度的字符串和不同的比较选项

我预计在核心方面不会有显著差异,因为IsPrefix基本上是:

public bool IsPrefix(string comp, string prefix) {
  return Compare(comp, 0, prefix.Length, prefix, 0, prefix.Length);
}
但是,由于应用了I18N级别,字符串的运算符==和CompareInfo类之间可能存在差异


最后,您将需要进行测量,但我希望99%的情况下,任何差异都不会对整个应用程序性能产生重大影响。

为什么不进行测试?很容易使用StopWatch类进行比较,并包含不同长度的字符串和不同的比较选项

我预计在核心方面不会有显著差异,因为IsPrefix基本上是:

public bool IsPrefix(string comp, string prefix) {
  return Compare(comp, 0, prefix.Length, prefix, 0, prefix.Length);
}
但是,由于应用了I18N级别,字符串的运算符==和CompareInfo类之间可能存在差异


最后,您需要进行测量,但我预计99%的情况下,任何差异对整个应用程序的性能都不重要。

我假设相等运算符实际比较了两个字符串哈希值,而不是实际内容(至少是快速失效的)

由于前缀匹配需要在哈希值比较之前创建子字符串,因此前缀匹配应该比完全相等匹配慢得多


如果有足够多的字符串需要前缀匹配,那么应该考虑实现一个TRIE结构()

我假设相等运算符实际比较了两个字符串的哈希值,而不是实际内容(至少是快速失败)

由于前缀匹配需要在哈希值比较之前创建子字符串,因此前缀匹配应该比完全相等匹配慢得多

如果您有足够的字符串需要前缀匹配,那么应该考虑实现TRIE结构()