Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between the classes System.StringComparer and System.StringComparison?

Tags:

c#

asp.net

What is the difference between these two classes ?

I have used System.StringComparer.OrdinalIgnoreCase() and System.StringComparison.OrdinalIgnoreCase() and both yield the same results. Do they have any difference or they both same ?


1 Answers

StringComparer is a Class which implements comparison interfaces like IComparer, IEqualityComparer, IComparer<String>, so that it can be used to compare two strings.

StringComparison is simply an Enum that you can pass in to certain methods to indicate which kind of comparison you want. In that case I suspect the underlying method would use a StringComparer to do the actual comparison.

When to use each

String specific methods like String.Equals only accepts a StringComparison value, so that's what you would use in this case.

You would use a StringComparer for methods which take a comparer as a parameter, and are called in a context where strings will be compared. For example, if you had a List<String>, and wanted to Sort that list in a case-insensitive way, you could do:

myList.Sort(StringComparer.OrdinalIgnoreCase);
like image 174
Meta-Knight Avatar answered Sep 07 '25 17:09

Meta-Knight



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!