我打算写一个方法,在比较两个字符串时必须决定是否忽略大小写。
public bool IsCaseSensitiveUsing(StringComparison comparer)
{
if (comparer == StringComparison.CurrentCulture |
comparer == StringComparison.InvariantCulture |
comparer == StringComparison.Ordinal))
return true;
return false;
}
有更好的方法吗?
答案 0 :(得分:0)
我建议实现扩展方法:
public static class StringComparisonExtensions {
public static bool IsCaseSensitiveUsing(this StringComparison value) {
return (value == StringComparison.CurrentCulture ||
value == StringComparison.InvariantCulture ||
value == StringComparison.Ordinal);
}
}
....
StringComparison myComparison = ...
// Check as if StringComparison has IsCaseSensitiveUsing method:
if (myComparison.IsCaseSensitiveUsing()) {
...
}
答案 1 :(得分:0)
您可以制作一组需要区分大小写的StringComparison
值,并在您的方法中使用它:
private static readonly ISet<StringComparison> caseSensitive = new HashSet<StringComparison> {
StringComparison.CurrentCulture
, StringComparison.InvariantCulture
, StringComparison.Ordinal
};
public static bool IsCaseSensitiveUsing(StringComparison comparer) {
return caseSensitive.Contains(comparer);
}