C# 逐行从文件中读取数据

C# 逐行从文件中读取数据,c#,.net,file-io,C#,.net,File Io,我当前正在打开一个文件并将其显示在消息框中 private void button2_Click_1(object sender, EventArgs e) { //OpenFileDialog1.ShowDialog(); OpenFileDialog file = new OpenFileDialog(); file.FileName = ""; file.Title = "Open A Text document."; file.Filter = "

我当前正在打开一个文件并将其显示在消息框中

private void button2_Click_1(object sender, EventArgs e)
{
    //OpenFileDialog1.ShowDialog();
    OpenFileDialog file = new OpenFileDialog();
    file.FileName = "";
    file.Title = "Open A Text document.";
    file.Filter = "(*.gc)|*.gc|(*.etf)|*.etf|(*.txt)|*.txt|(*.GC)|*.GC|(*.tap)|*.tap";
    DialogResult result = file.ShowDialog();
    if (result == DialogResult.OK)
    {
        System.IO.StreamReader OpenFile = new System.IO.StreamReader(file.FileName);
        textBox1.Text = OpenFile.ReadToEnd();
        OpenFile.Close();


    }

    if (file.FileName.Length > 0)
    {
        OpenFile(file.FileName);
    }
但是我需要逐行读取文件并在消息框中显示它。是否有办法更改此代码。

考虑使用方法。

这正是该方法的用途

while (OpenFile.Peek() >= 0) 
{
    MessageBox.Show(OpenFile.ReadLine());
}

您是否尝试过
OpenFile.ReadLine()
方法


或者,更激进的方法

string[] lines = OpenFile.ReadToEnd().Split('\n');
有一个方法返回IEnumerable,因此您可以执行以下操作:

foreach(var line in File.ReadLines("myfile.txt")){
   //Do stuff with line
}

从文件中读取所有行的最简单方法是方法(内部使用
StreamReader
):


您是说要为文件中的每一行显示单独的消息框吗?请使用ReadLine()而不是ReadToEndI。我想在同一消息中显示它box@Sthn那么您想在单个消息框中显示整个文件?您是否尝试过
MessageBox.Show(OpenFile.ReadToEnd())?@Sthn比为什么需要逐行阅读+1不知道返回的ReadLinesIEnumerable@lazyberezovsky-在.Net 4.0中有很多微妙的API改进IEnumerable friendly IO就是其中之一,这是上帝送给LINQ的礼物。是的,我知道一些(比如Directory.Enumerable文件)但这是我第一次看到ReadLines:)@lazyberezovsky-4.5中所有的异步内容都是amazeballs:)如果我想使用文本框而不是消息框,如何使用它使用
textBox.Text+=OpenFile.ReadLine()
或类似的东西。
foreach(string line File.ReadAllLines(fileName))
    MessageBox.Show(line);