There is nothing out of the box, but you can create a simple mapping between companion and comparator:
Dictionary<StringComparison, StringComparer> comparsionToComparer = new Dictionary<StringComparison, System.StringComparer> { { StringComparison.CurrentCulture, StringComparer.CurrentCulture }, { StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase }, { StringComparison.InvariantCulture, StringComparer.InvariantCulture }, { StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase }, { StringComparison.Ordinal, StringComparer.Ordinal }, { StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase } }
And when you need the right comparator:
var invariantComparer = comparsionToComparer[StringComparsion.InvariantCulture];
Edit:
With C # -6 dictionary initializer syntax:
Dictionary<StringComparison, StringComparer> comparsionToComparer = new Dictionary<StringComparison, System.StringComparer> { [StringComparison.CurrentCulture] = StringComparer.CurrentCulture, [StringComparison.CurrentCultureIgnoreCase] = StringComparer.CurrentCultureIgnoreCase, [StringComparison.InvariantCulture] = StringComparer.InvariantCulture, [StringComparison.InvariantCultureIgnoreCase] = StringComparer.InvariantCultureIgnoreCase, [StringComparison.Ordinal] = StringComparer.Ordinal, [StringComparison.OrdinalIgnoreCase] = StringComparer.OrdinalIgnoreCase };
In addition, the Jons answer refers to the current culture issue that I have discarded and should probably be considered
source share