InvariantCultureIgnoreCase

InvariantCultureIgnoreCase

做了大量不区分大小写的字符串比较,我以许多冗长的语句结束,例如:

myList.FirstOrDefault(
    c => string.Equals(
             c.InternalName,
             internalName,
             StringComparison.InvariantCultureIgnoreCase));

困扰我的是 StringComparison.InvariantCultureIgnoreCase 的长名称。

我可以考虑使用扩展方法等来缩短我必须编写的代码,但另一方面,我担心“混淆”我的代码,从而使其更难理解。

所以我的问题是:

是否有一种“最佳实践”,即必须编写更少的文本并仍然进行 InvariantCultureIgnoreCase 样式的字符串比较?

最佳答案

您可以将其包装在 Extension Method 中:

public static class StringExtensions
{
    public static bool EqualsCaseInsensitive(this string str, string other)
    {
        return string.Equals(str, other, StringComparison.InvariantCultureIgnoreCase);
    }
}

然后做:
myList.FirstOrDefault(
    c => c.InternalName.EqualsCaseInsensitive(internalName))

10-08 19:12