结合StringComparison枚举

时间:2017-07-01 20:31:15

标签: c#

我打算写一个方法,在比较两个字符串时必须决定是否忽略大小写。

public bool IsCaseSensitiveUsing(StringComparison comparer)
{
    if (comparer == StringComparison.CurrentCulture | 
        comparer == StringComparison.InvariantCulture | 
        comparer == StringComparison.Ordinal))
            return true;

    return false;

 }

有更好的方法吗?

2 个答案:

答案 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);
}