You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何检查用户输入的运算符是否存在于指定字符串数组中

问题解决:判断用户输入是否在预设运算符数组中

错误原因

你遇到的CS0019报错是因为直接用字符串类型的operation和字符串数组类型的func做相等性比较,C#不支持这两种类型直接用!=运算符判断。

解决方案

方案1:使用数组内置Contains()方法(最简写法)

首先在代码文件顶部引入Linq命名空间:

using System.Linq;

然后把你原来的判断逻辑:

if (operation != func)
{
    throw new Exception();
}

替换为:

if (!func.Contains(operation))
{
    throw new Exception();
}

该逻辑会直接判断func数组中是否包含用户输入的operation值,不包含就抛出异常,完全匹配你的需求。

方案2:无Linq依赖的手动遍历写法

如果你不想引入Linq命名空间,也可以手动遍历数组做判断,替换原有判断逻辑即可:

bool isLegalOperation = false;
foreach (string op in func)
{
    if (op == operation)
    {
        isLegalOperation = true;
        break;
    }
}
if (!isLegalOperation)
{
    throw new Exception();
}

优化建议

  • 可以给异常添加自定义提示信息,方便后续调试:throw new Exception("输入的运算符不合法")
  • 如果后续运算符列表会持续扩充,建议把func改为HashSet<string>类型,查找效率更高。

内容的提问来源于stack exchange,提问作者MHX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:18:01