簡體   English   中英

isprefix是否比在C#中比較兩個字符串更昂貴?

[英]Is isprefix more expensive than comparing two strings in C#?

我正在做一些比較兩個字符串的計算。 如果我知道它們的長度相同,則調用isprefix或If(“ string” ==“ string”)會更昂貴嗎?

為什么不測試? 易於使用StopWatch類進行比較,並包括不同長度的字符串和不同的比較選項。

我希望核心不會有顯着差異,因為IsPrefix本質上是:

public bool IsPrefix(string comp, string prefix) {
  return Compare(comp, 0, prefix.Length, prefix, 0, prefix.Length);
}

但是,由於應用的I18N級別,String的運算符==和CompareInfo類之間可能會有差異。

最后,您需要進行評估,但是我希望在99%的情況下,任何差異對整體應用程序性能都不重要。

我假設相等運算符實際上比較了兩個字符串的哈希值,而不是實際的內容(至少作為快速失敗的比較)

由於前綴匹配將需要在哈希值比較之前創建子字符串,因此,前綴匹配應該比完全相等匹配慢得多。

如果您有足夠的字符串需要前綴匹配,則應考慮實現TRIE結構( http://paste.lisp.org/display/12161

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM