检查一行代码中字符串是否为数字

The*_*eek 1 c# string int dotnetnuke tryparse

我正在使用DNN表单构建模块,该模块允许根据条件运行某些服务器端代码.对于我的特定场景,如果某个表单文本的前4个字符是数字,我需要运行我的代码块.

但是,键入条件的空间只有一行,我相信会if在幕后的某个地方注入一个语句,因此我没有能力编写多行条件.

如果我有一个表单字段MyField,我可能会创建一个简单的条件,如下所示:

[MyField] == "some value"
Run Code Online (Sandbox Code Playgroud)

然后在幕后的某个地方,它被翻译成类似的东西 if("some value" == "some value") {

我知道int.TryParse()可以用来判断一个字符串是否是数字,但是我看到的每个实现都需要两行代码,第一行声明一个变量来包含转换后的整数,第二行来运行实际函数.

有没有办法检查一个字符串的前4个字符是否只是一行中可以存在的if语句中的数字?

smo*_*nes 6

扩展方法包装它.

public static class StringExtensions
{
    public static bool IsNumeric(this string input)
    {
        int number;
        return int.TryParse(input, out number);
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用它

if("1234".IsNumeric())
{
    // Do stuff..
}
Run Code Online (Sandbox Code Playgroud)

问题发生变化后更新:

public static class StringExtensions
{
    public static bool FirstFourAreNumeric(this string input)
    {
        int number;
        if(string.IsNullOrEmpty(input) || input.Length < 4)
        {
            throw new Exception("Not 4 chars long");
        }

        return int.TryParse(input.Substring(4), out number);
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用它

if("1234abc".FirstFourAreNumeric())
{
    // Do stuff..
}
Run Code Online (Sandbox Code Playgroud)