我用:
for (int counter = 0; counter <= i; counter++)
{
USER.ReadLine();
}
从行中跳过(行数是动态的(可以改变))但是通过这种方法它显示零而不是读取并在我的结果中显示它的行。我想跳过这些行。我怎么修改它?顺便说一句,我知道有skip
方法,但我找不到如何使用它。
int sc = Convert.ToInt32(txtbx_sc.Text);//sc is an string which is read from textbox
int i=sc*100;
//read both dataset
StreamReader USER = new StreamReader("c:\\1.txt");
StreamReader ITEM = new StreamReader("c:\\2.txt");
//read the line from user dataset and store them
for (int counter = 0; counter <= i; counter++)
{
USER.ReadLine();
}
for (int x = 0; x < 1143600; x++)
{
for (int y = 0; y < 100; y++)
{
float lineu=Convert.ToSingle(USER.ReadLine());
float linei=Convert.ToSingle(ITEM.ReadLine());
c[x,y]+=linei*lineu;
}
}
}
谢谢!
答案 0 :(得分:1)
而是创建StreamReader,您可以通过File.ReadAllLines读取所有到阵列的行。 然后使用LINQ操作它们。
试试这样:
string[] lines = File.ReadAllLines("c:\\1.txt");
string[] user = lines
.Skip(i)
.ToArray();
int userIndex = 0;
for (int x = 0; x < 1143600; x++)
{
for (int y = 0; y < 100; y++)
{
float lineu = Convert.ToSingle(user[userIndex++]);
float linei = Convert.ToSingle(ITEM.ReadLine());
c[x,y] += linei * lineu;
}
}
如果我理解你的问题。