StringComparer
jest Class
który implementuje interfejsy porównanie jak IComparer
, IEqualityComparer
, IComparer<String>
, tak że może on być używany do porównania dwóch ciągów.
StringComparison
to po prostu Enum
, które można przekazać do niektórych metod, aby wskazać, jakiego rodzaju porównanie chcesz. W takim przypadku podejrzewam, że metoda bazowa użyłaby StringComparer
do rzeczywistego porównania.
Kiedy używać każdego
String specyficzne metody jak String.Equals przyjmuje tylko wartości StringComparison
, więc to, co można zastosować w tym przypadku.
Można użyć metody StringComparer
dla metod, które pobierają parametr porównujący jako parametr i są wywoływane w kontekście, w którym ciągi będą porównywane. Na przykład, jeśli miał List<String>
i chciał Sort tej listy w przypadku niewrażliwe sposób, można zrobić:
myList.Sort(StringComparer.OrdinalIgnoreCase);
Czy możesz opublikować swoją sprawę i oczekiwane wyniki dla każdego z nich. Zastanawiam się, czy porównasz == kontra równości w kategoriach odniesień do wartości – MethodMan
'System.StringComparison.OrdinalIgnoreCase' jest wartością wyliczeniową, a nie metodą. Więc 'System.StringComparison.OrdinalIgnoreCase()' nie skompilowałoby się. Nie jestem pewien, co właściwie miałeś na myśli. – AakashM