我正在从文件中读取值并检查我的代码是
的值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;
}
....
还有其他方法可以让我的代码看起来很好吗
答案 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索引)
的列表