Esistono diversi modi per confrontare le stringhe. Ci sono guadagni in termini di prestazioni facendo un modo piuttosto che un altro?Performance comparativa delle stringhe in C#
ho sempre optato per confrontare le stringhe in questo modo:
string name = "Bob Wazowski";
if (name.CompareTo("Jill Yearsley") == 0) {
// whatever...
}
Ma trovo poche persone che fanno questo, e se qualcosa, vedo sempre più persone solo facendo un confronto == dritta, che a mia conoscenza è il peggior modo di confrontare le stringhe. Ho sbagliato?
Inoltre, fa una differenza nel modo in cui si confrontano le stringhe nelle query LINQ? Per esempio, mi piace fare le seguenti operazioni:
var results = from names in ctx.Names
where names.FirstName.CompareTo("Bob Wazowski") == 0
select names;
Ma ancora una volta, vedo poche persone che fanno confronti tra stringhe in questo modo nelle loro query LINQ.
possibile duplicato del [Differenze nella stringa di confrontare metodi in C#] (http://stackoverflow.com/questions/44288/differences-in-string-compare-methods-in-c-sharp) – crowder
si potrebbe desiderare per vedere http://rhale78.wordpress.com/2011/05/16/string-equality-and-performance-in-c/ – nawfal