Poiché non c'è maiuscole e minuscole string.Contains()
(esiste ancora una versione senza distinzione tra maiuscole e minuscole di string.Equals()
che mi sconcerta, ma divago) in .NET, Che cos'è le differenze di prestazioni tra l'utilizzo di RegEx.IsMatch()
e l'utilizzo di String.ToUpper().Contains()
?RegEx.IsMatch() rispetto a String.ToUpper(). Contains() prestazioni
Esempio:
string testString = "tHiSISaSTRINGwiThInconSISteNTcaPITaLIZATion";
bool containsString = RegEx.IsMatch(testString, "string", RegexOptions.IgnoreCase);
bool containsStringRegEx = testString.ToUpper().Contains("STRING");
Ho sempre sentito dire che string.ToUpper()
è una chiamata molto costoso quindi ho rifuggire da usando quando voglio fare string.Contains()
paragoni, ma come si fa RegEx.IsMatch()
confronto in termini di prestazioni?
Esiste un approccio più efficiente per effettuare tali confronti?
Hai provato a utilizzare [Cronometro] (http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx)? – Sayse
L'unico modo per sapere quale è più veloce è eseguirli entrambi e cronometrarli. Questo potrebbe aiutare: http://stackoverflow.com/questions/457605/how-to-measure-code-performance-in-net – kevingessner
Che dire di 'testString.IndexOf (" string ", StringComparison.CurrentCultureIgnoreCase)> = 0'? –