用于true-false值的Stringcomparison OrdinalIgnoreCase

本文关键字:OrdinalIgnoreCase Stringcomparison 值的 true-false 用于 | 更新日期: 2023-09-27 18:29:41

这有意义吗?MyValue可以是"true"或"false"

它不应该是Stringcomparison.OrdinalIgnoreCase吗?

MyValue.Equals("true", StringComparison.CurrentCultureIgnoreCase))

用于true-false值的Stringcomparison OrdinalIgnoreCase

我不会那样做。字符串不等于"true"并不意味着它等于"false"。这是一个让丑陋的错误溜走的简单方法。我认为你应该解析字符串

bool value;
if(!Boolean.TryParse(MyValue, out value)) {
    // it did not parse
}
// it parsed

这更有可能是正确的,而且可读性更强。此外,文化问题也被掩盖了。

这实际上取决于您的情况以及程序的其余部分是如何构建的。来自OrdinalCompareCase 上的文档

OrdinalIgnoreCase属性返回的StringComparer将要比较的字符串中的字符视为使用不变区域性的约定转换为大写的字符,然后执行独立于语言的简单字节比较。当比较以编程方式生成的字符串或比较不区分大小写的资源(如路径和文件名)时,这是最合适的。

因此,基本上,如果这些值与文化无关(以编程等方式生成),请使用OrdinalIgnoreCase

Bool.Parse

我觉得更好。

相关文章:
  • 没有找到相关文章