【问题标题】:Can we have the OR operator in the string variable in asp.net? [duplicate]我们可以在 asp.net 的字符串变量中使用 OR 运算符吗? [复制]
【发布时间】:2012-09-25 10:59:57
【问题描述】:

可能重复:
Using C# to check if string contains a string in string array

我们可以在 asp.net 中使用逻辑 OR 运算符(|)在单个字符串变量中包含多个字符串吗?

string _Text = "";
string _str = "abc" | "xyz" | "123";
if(_Text.Contains(_str))
{
    foo("_str");
}

谢谢,

【问题讨论】:

  • 你能用其他语言吗?
  • 您自己尝试过代码吗?运算符“|”不能应用于“字符串”和“字符串”类型的操作数
  • @PoweRoy Python 允许"abc" or "xyz" or "123" 结果为"abc",因为每个非空字符串都被评估为真。 ideone.com/STyWh
  • @halex:我的意思是“你能用任何其他语言做到这一点并得到想要的结果吗”,编译并不意味着什么。
  • @krishn,“aaaaa”是什么意思 | “bbb”?

标签: c# asp.net


【解决方案1】:

不,不能按照您的方式进行。但是如何使用数组

string _Text = "";
string[] _str = {"abc" , "xyz" , "123"};
if(_str.Contains(_Text))
{
    foo(_Text);
}

【讨论】:

  • @Cuong Le:这段代码运行良好,我会重命名 _str 变量。您应该尝试编译自己的代码,将数组分配给字符串会报错。
  • @peer:对。 Burning_LEGION 的正则表达式答案正在做我的答案正在做的事情,但使用正则表达式。
  • @peer:谢谢,已编辑,如果 text = "abcdsd" 怎么办?
  • @CuongLe:仍然可以编译和工作。它不会进入 if 语句。
  • 我修复了你的两个代码示例,但主要问题应该是“aa”的含义 | “b”应该是。我想不通。
【解决方案2】:

不,你不能,但你可以解决:

string _Text = "abc"
var _str = new[] {"abc", "xyz", "123"};

if(_str.Any(s => _Text.Contains(s))
{
     foo(_Text);
}

【讨论】:

  • @peer:你改变的不同,回滚
【解决方案3】:

我并不完全清楚你想做什么。或 (|) 无论如何都不起作用。你需要这样的东西吗?

string haystack = "The quick brown fox jumps over the lazy dog";
string[] needles = {"fox", "the", "dog"};

foreach (var n in needles)
{
    if (haystack.Contains(n))
    {
        Console.WriteLine("'{0}' found in '{1}'", n, haystack);
    }
}   

【讨论】:

    【解决方案4】:

    两个操作数都必须是布尔值:

    Logical OR Operator: ||

    "逻辑或运算符 (||) 如果其中一个或两个操作数为真,则返回布尔值真,否则返回假。操作数在计算之前被隐式转换为 bool 类型,结果为 bool 类型。逻辑OR 具有从左到右的关联性。”

    【讨论】:

      【解决方案5】:

      使用正则表达式Regex.IsMatch(_Text, @"^(abc)|(xyz)|(123)$")

      【讨论】:

        【解决方案6】:

        不,您应该为此使用任何类型的容器(数组/列表/等)。

        【讨论】:

          猜你喜欢
          • 2021-09-11
          • 2023-03-15
          • 2019-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多