如何检查StringComparison是否区分大小写?

时间:2015-10-05 15:39:40

标签: c# .net string-comparison

给定一个StringComparison实例,我该如何检查它是否区分大小写?

我应该将它与enum中所有当前已知的区分大小写的值进行比较吗?

StringComparison sc = ...;
bool isCaseSensitive = false
    || sc == StringComparison.CurrentCulture
    || sc == StringComparison.InvariantCulture
    || sc == StringComparison.Ordinal;

3 个答案:

答案 0 :(得分:3)

是的,对于枚举形式(StringComparison)来说没问题。 MS现在极不可能添加另一个StringComparison值,因为为枚举添加一个值实际上是一个重大变化。

对于StringComparer,它更难:(

答案 1 :(得分:2)

嗯,是的。 StringComparison是一个包含6个值的枚举,并且没有方法可以测试它们的区分大小写。

你必须自己动手,你的方法似乎是合理的。

如果你想要一个(不错的)单行:

bool isCaseSensitive = (int)StringComparison.Ordinal % 2 == 1;

答案 2 :(得分:1)

你实际上如何使用提供的枚举来比较两个字符串?

bool isCaseSensitive = !("A".Equals("a", sc));