首页 > 解决方案 > textchanged 事件中的复杂 if 语句

问题描述

我想实现一个复杂的 if 语句。if 语句位于文本框的 textchanged 事件中。如果 if 语句为真,则应加载 pdf 文件。问题不在于如何加载 PDF 文件,这已经很好了,问题在于如何设置 if 语句。在那里,应查询以下条件:

位置0必须是“S”,位置1必须是“E”,位置2必须是“H”,位置3无所谓,位置4-7代表数字,数字必须从0开始-3000(不允许超过 3000),位置 8 必须再次是“H”或“R”

我尝试了 IndexOf() 方法,它适用于前 3 个字符,但与第 8 个符号相关,它不再起作用。我认为这与“H”已经存在于位置 2 的事实有关。

要检查我尝试过的数字: Convert.ToInt32(textBox1.Text.Substring(4, 4)) <= 3000

但这也不起作用。

标签: c#stringif-statementindexoftextchanged

解决方案


private static bool ShowPdf(string str)
{
    if (str[0] != 'S')
        return false;
    else if (str[1] != 'E')
        return false;
    else if (str[2] != 'H')
        return false;
    else if (str[8] != 'H' && str[8] != 'R')
        return false;
    else if (int.TryParse(str.Substring(4,4), out int number)
        return (number >= 0 && number <= 3000);
   return true;
}

推荐阅读