验证整数值的最短方法

时间:2013-09-09 15:42:02

标签: c# validation if-statement

我正在从文件中读取值并检查我的代码是

的值
while (sr.EndOfStream != null)
{
     a= sr.EndOfStream ? "" : sr.ReadLine();
     if (Convert.ToInt32(a) < 1)
     {
         Console.WriteLine(a+ " is not a right value");
         flag = true;
         break;
     }
     b= sr.EndOfStream ? "" : sr.ReadLine();
     if (Convert.ToInt32(b) < 1)
     {
         Console.WriteLine(b+ " is not a right value");
         flag = true;
         break;
     }
     ....

还有其他方法可以让我的代码看起来很好吗

3 个答案:

答案 0 :(得分:2)

C#语言为此提供了一些实用方法。我们描述了一种将字符串转换为int的简单方法。当无法转换字符串时,此方法可避免异常。

        int value;

        if (Int32.TryParse("String Value", out value))
        {
            //Converted
        }
        else
        {
            //Can not parse to Int 
        }

答案 1 :(得分:2)

我会使用非常好的TryParse方法来验证您的输入,并且每次通过while循环处理一行。

while (!sr.EndOfStream)
{
    int a;
    string s = sr.EndOfStream ? "" : sr.ReadLine();
    if (int.TryParse(s, out a))
    {
        // Use the value of a, since it is an integer
    }
    else
    {
        Console.WriteLine(a + " is not a right value");
        flag = true;
        break;
    }
}

答案 2 :(得分:1)

从我的手机写信,请原谅格式......

var lines = file.readalllines(path);
var indexes //list
for(int I = 0; I < lines.count; I++)
{
    int current;
    if(!int.TryParse(lines[I], out current)
        indexes.add(I);
}

索引现在将是每个错误行(0索引)

的列表