【问题标题】:C# "or" operatorC#“或”运算符
【发布时间】:2013-07-25 10:38:50
【问题描述】:

我有这个代码:

if (textBox1.Text == "one" || "two")

我尝试过使用 ||和 |添加更多字符串,但它说它不能应用于“bool”和“string”类型的操作数。我怎样才能使这项工作? 谢谢。

【问题讨论】:

  • 有哪些不同的情况?

标签: c# string operators


【解决方案1】:

试试这个

if (textBox1.Text == "one" || textBox1.Text == "two")

【讨论】:

  • @SandroMilhano OP——我猜你在做textBox1.Text == "one" || "two"。你不能这样做 - 左边的表达式将被评估为布尔值,然后你试图评估 boolean || "two",导致你提到的错误。
  • @tnw 没错。这也是我的怀疑!
  • 是的,我正在尝试这样做:)
【解决方案2】:

或者:

var strings = new List<string>() {"one", "two", "thee", .... "n"};
if(strings.Contains(textBox1.Text)){
}

【讨论】:

  • 谢谢!这更符合我的需要。
  • 你能告诉我为什么会失败:(c.Contains('All') || c.Contains('')) ? "[ClientText] LIKE '%'" : "[ClientText] = '" + c + "'"; cannot convert string to bool error.
【解决方案3】:

您不能以我怀疑您正在尝试的方式组合运算符:

if (textBox1.Text == "one" || "two")

您需要对每个条件进行如下限定:

if (textBox1.Text == "one" || textBox1.Text == "two")

有一些方法可以让这更容易,请参阅this question 的答案以了解另一种方法

【讨论】:

    【解决方案4】:

    我建议使用:

    var options = new [] { "one", "two" };
    if (options.Contain(textBox1.Text))
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-26
      • 2019-05-03
      • 2016-08-22
      • 2010-12-08
      • 2017-04-13
      • 2013-10-23
      • 2021-09-02
      • 2011-06-15
      相关资源
      最近更新 更多