Không có một cái gì đó ra khỏi hộp, nhưng bạn có thể tạo ra một bản đồ đơn giản cho mình giữa comparsion và Comparer:
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 }
}
Và khi chưa từng có bạn cần Comparer thích hợp:
var invariantComparer = comparsionToComparer[StringComparsion.InvariantCulture];
Edit:
Với C# -6 điển Initializer cú pháp:
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
};
Ngoài ra, Jons answer đề cập đến vấn đề của chủ đề hiện văn hóa, mà tôi bỏ đi và có lẽ nên được đưa vào tài khoản
Nguồn
2015-09-24 14:34:16
Cảm ơn bạn đã cho thấy rằng "bản đồ động" hữu ích khi văn hóa có khả năng thay đổi. Có lẽ tôi cũng hiểu tại sao mọi thứ không đơn giản như vậy. NET sẽ cung cấp nó ra khỏi hộp. – miroxlav