如何在不显示0而不是结果的情况下跳过这些行

时间:2014-02-19 12:45:10

标签: c#

我用:

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;
                  }
            }

       }

谢谢!

1 个答案:

答案 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;
    }
}

如果我理解你的问题。