StringComparer
è un Class
che implementa le interfacce di confronto come IComparer
, IEqualityComparer
, IComparer<String>
, in modo che possa essere utilizzata per confrontare due stringhe.
StringComparison
è semplicemente un Enum
che è possibile passare a determinati metodi per indicare quale tipo di confronto si desidera. In tal caso, sospetto che il metodo sottostante utilizzi uno StringComparer
per eseguire il confronto effettivo.
Quando usare ogni
String metodi specifici come String.Equals accetta solo un valore StringComparison
, ed è quello che si usa in questo caso.
Si utilizza uno StringComparer
per i metodi che accettano un confronto come parametro e vengono chiamati in un contesto in cui verranno confrontate le stringhe. Ad esempio, se si ha un List<String>
, e voleva Sort che elencano in maniera case-insensitive, si potrebbe fare:
myList.Sort(StringComparer.OrdinalIgnoreCase);
fonte
2012-01-18 22:00:59
potresti pubblicare il tuo caso ed i risultati previsti per ciascuno. Mi chiedo se stai confrontando == vs Equals in termini di riferimenti vs valori – MethodMan
'System.StringComparison.OrdinalIgnoreCase' è un valore enum, non un metodo. Quindi 'System.StringComparison.OrdinalIgnoreCase()' non verrebbe compilato. Non sono sicuro di cosa intendi realmente. – AakashM