我遇到了C#read(){}
函数的问题。当我打开并阅读我的文档时,它不会读取第一行:
private static void read(string file, Konteineris butas)
{
using (StreamReader reader = new StreamReader(@file))
{
string line;
line = reader.ReadLine();
while (null != (line = reader.ReadLine()))
{
string[] values = line.Split(';');
int nr = Convert.ToInt16(values[0]);
double plotas = Convert.ToDouble(values[1]);
int kambariusk = Convert.ToInt16(values[2]);
int kaina = Convert.ToInt32(values[3]);
string tnr = values[4];
Apartaments apart = new Butas(nr,plotas,kambariusk,kaina,tnr); // array of apartaments
apartaments.addapartament(apart);
}
}
}
文本文件:
1;25,4;1;25000;867467212 // skips this line...
2;26,4;2;100000;867467212
3;75,4;3;2100;867467212
4;65,4;4;15000;867467212
答案 0 :(得分:2)
删除对line = reader.ReadLine();
的第一个电话您正在呼叫ReadLine()您的循环,因此您不需要它。
答案 1 :(得分:1)
因为你做了一行= reader.ReadLine();然后在while循环中使用相同的代码跟进它,当它到达循环的第一次迭代时,它已经完成了两次.ReadLine(),因此在第二行上文件。
删除line = reader.ReadLine();从代码中重试。
答案 2 :(得分:0)
private static void read(string file, Konteineris butas)
{
using (StreamReader reader = new StreamReader(@file))
{
string line;
line = reader.ReadLine();
while (null != (line = reader.ReadLine()))
{
string[] values = line.Split(';');
int nr = Convert.ToInt16(values[0]);
double plotas = Convert.ToDouble(values[1]);
int kambariusk = Convert.ToInt16(values[2]);
int kaina = Convert.ToInt32(values[3]);
string tnr = values[4];
Apartaments apart = new Apartaments(nr,plotas,kambariusk,kaina,tnr); // array of apartaments
apartaments.addapartament(apart);
}
}
}
删除它。因为你的while条件已经这样做了,你将根据这个调用跳过第一行。 line = reader.ReadLine();每次调用它时都会给你一个新行。 因此,在您的状态下,您可以在不使用第一行的情况下获得第二行。
WAY1:
private static void read(string file, Konteineris butas)
{
using (StreamReader reader = new StreamReader(@file))
{
string line;
while (null != (line = reader.ReadLine()))
{
string[] values = line.Split(';');
int nr = Convert.ToInt16(values[0]);
double plotas = Convert.ToDouble(values[1]);
int kambariusk = Convert.ToInt16(values[2]);
int kaina = Convert.ToInt32(values[3]);
string tnr = values[4];
Apartaments apart = new Apartaments(nr,plotas,kambariusk,kaina,tnr); // array of apartaments
apartaments.addapartament(apart);
}
}
}
way2:
private static void read(string file, Konteineris butas)
{
using (StreamReader reader = new StreamReader(@file))
{
string line;
while (line!=null)
{
line = reader.ReadLine();
string[] values = line.Split(';');
int nr = Convert.ToInt16(values[0]);
double plotas = Convert.ToDouble(values[1]);
int kambariusk = Convert.ToInt16(values[2]);
int kaina = Convert.ToInt32(values[3]);
string tnr = values[4];
Apartaments apart = new Apartaments(nr,plotas,kambariusk,kaina,tnr); // array of apartaments
apartaments.addapartament(apart);
}
}
}