给定一个StringComparison
实例,我该如何检查它是否区分大小写?
我应该将它与enum中所有当前已知的区分大小写的值进行比较吗?
StringComparison sc = ...;
bool isCaseSensitive = false
|| sc == StringComparison.CurrentCulture
|| sc == StringComparison.InvariantCulture
|| sc == StringComparison.Ordinal;
答案 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));