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

后端 未结 2 825
情书的邮戳
情书的邮戳 2020-12-15 17:58

What is the difference between these two classes ?

I have used System.StringComparer.OrdinalIgnoreCase() and System.StringComparison.OrdinalIgnore

2条回答
  •  清酒与你
    2020-12-15 18:15

    The question is: why to have in a framework both of them ?

    The explanation is this one:

    • StringComparison is:

    Specifies the culture, case, and sort rules to be used by certain overloads of the String.Compare and String.Equals methods

    • StringComparer is:

    Represents a string comparison operation that uses specific case and culture-based or ordinal comparison rules

    Noticed a difference ?

    In second case, so in case of StringComparer there is a notion of string comparison operation, but not string type.

    In fact, if you look at this you will read simply:

    Some non-string methods that have string comparison as a central operation use the StringComparer type.

    An example, from the same link:

    Array.BinarySearch(this.storedNames, name, StringComparer.Ordinal)
    

    I use StringComparer like a comparison "base" among content of the array reference type.

提交回复
热议问题