做了大量不区分大小写的字符串比较,我以许多冗长的语句结束,例如:
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))