C#通过跳过空行将4923行从文本文件添加到DataGridView

时间:2014-09-22 04:36:06

标签: c# datagridview

我是C#的新手。我有一个巨大的文本文件,包含4923行数据,我希望将其添加到DataGridView。文本文件在句子之间有很多空格和空行。我希望跳过所有空白行和空格并将内容加载到DataGridView。有人能给我一个解决方案吗?这可以在不使用DataTables和Datasource的情况下实现吗?

如果我的问题不明确,请告诉我。我的代码可能有错误。请帮我纠正它

由于

这是我的代码

public void textload()
{
        List<string> str = new List<string>();
        String st = "";

        //Path to write contents to text file
        string filename = @"E:\Vivek\contentcopy\clientlist.txt";
        Form.CheckForIllegalCrossThreadCalls = false;
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.FileName = "";
        ofd.Filter = "csv files|*.csv|txt files|*.txt|All Files|*.*";
        ofd.ShowDialog();
        st = ofd.FileName;

        if (string.IsNullOrEmpty(ofd.FileName))
            return;

        string[] lines = File.ReadAllLines(st);

        for (int i = 0; i < lines.Length; i++)
        {
            listBox1.Items.Add(lines[i]);
            string[] s = lines[i].Split(' ');
            MessageBox.Show(s.Length.ToString());
            str.Add(lines[i]);
            dataGridView1.Rows.Add();

            if (s[i] == null && s[i] == " ") 
            {
                    continue; 
            }        

            dataGridView1.Rows[i].Cells[i].Value=s[i];
            //dataGridView1.Rows[i].Cells[10].Value = s[10];
            //dataGridView1.Rows[i].Cells[11].Value = s[11];
            //dataGridView1.Rows[i].Cells[12].Value = s[12];
            //dataGridView1.Rows[i].Cells[13].Value = s[13];
            //dataGridView1.Rows[i].Cells[14].Value = s[14];
            //dataGridView1.Rows[i].Cells[15].Value = s[15];
       }

       File.WriteAllLines(filename, str);
       dataGridView1.ReadOnly = true;
}

1 个答案:

答案 0 :(得分:1)

一种选择是在您阅读空字符串后立即将其过滤掉。这可以通过LINQ Where和传递条件来完成,该条件检查字符串是否仅仅是空格。 String.IsNullOrWhitepspace涵盖了这一点(此外,还会检查null在使用ReadAllLines时不会发生的情况。)

 string[] lines = File.ReadAllLines(st)
     .Where(s => !String.IsNullOrWhitespace(s))
     .ToArray();