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语句中的数字?
用扩展方法包装它.
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)