Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将文本文件的行添加到列表框(C#)上的单个项中_C#_.net_Windows - Fatal编程技术网

如何将文本文件的行添加到列表框(C#)上的单个项中

如何将文本文件的行添加到列表框(C#)上的单个项中,c#,.net,windows,C#,.net,Windows,如何读取一个包含多行的文本文件,然后将文本文件中的每一行放在列表框中的单独一行上 到目前为止,我掌握的代码是: richTextBox5.Text = File.ReadAllText("ignore.txt"); 您应该使用streamreader一次读取一行文件 using (StreamReader sr = new StreamReader("ignore.txt")) { string line; while ((line = sr.ReadLine()) != null)

如何读取一个包含多行的文本文件,然后将文本文件中的每一行放在列表框中的单独一行上

到目前为止,我掌握的代码是:

richTextBox5.Text = File.ReadAllText("ignore.txt");

您应该使用streamreader一次读取一行文件

using (StreamReader sr = new StreamReader("ignore.txt"))
{
  string line;
  while ((line = sr.ReadLine()) != null)
    listBox1.Items.Add(line);
}
StreamReader信息->


ListBox info->

编写一个助手方法,返回行集合

   static IEnumerable<string> ReadFromFile(string file) 
    {// check if file exist, null or empty string
        string line;
        using(var reader = File.OpenText(file)) 
        {
            while((line = reader.ReadLine()) != null) 
            {
                yield return line;
            }
        }
    }


您好,谢谢,但我收到一个错误:“System.IO.File”不包含“reallText”的定义。如果文件很大,则会有问题,而且Regex是overkill@lukas:如果文件很大,则不会将其添加到ListBox.typo中-我只是使用了您在原始示例中提供的内容。有很多方法可以读取文本文件并将其拆分为行,这只是一种可能的方法。贾拉尔有另一种应对方式为什么?不管怎样,最终所有的行都是字符串,这只会使代码更加复杂resources@lukas-using块将处理StreamReader。为什么不使用
File.ReadAllLines()
File.ReadLines()
?它可以与LINQ一起使用,而ReadAllLines不可以。另外,ReadAllLines返回数组,我讨厌它,因为它的大小是不可变的(ye有时是有用的)。似乎是读取文件的更好方法。正则表达式更难理解,并且添加了不必要的噪声。如果我想使用它,除了“\r\n |\r |\n”之外,我会使用Environment.NewLine来实现系统独立性(现在不仅有Unix和Windows,还有很多外来设备)
T[]
实现
IEnumerable
,因此它可以与LINQ一起使用。一些LINQ操作甚至对它(以及实现代码< ILIST < /代码>的其他集合)进行了优化。如果您正在使用.NET 4,则认为它是一个线性项:ListBox x.Task.AddRange(文件.RealLeLINE(“Itable,Txt”))@Hans Passant你为什么不把答案贴出来?我相信这是最好的答案。它只是更短,而不是更好。你可以贴出来接受你自己的答案。一个好答案。我很懒,只会写这个:listBox.Items.AddRange(File.ReadAllLines(@“ignore.txt”);
   static IEnumerable<string> ReadFromFile(string file) 
    {// check if file exist, null or empty string
        string line;
        using(var reader = File.OpenText(file)) 
        {
            while((line = reader.ReadLine()) != null) 
            {
                yield return line;
            }
        }
    }
var lines = ReadFromFile(myfile);
myListBox.ItemsSource = lines.ToList(); // or change it to ObservableCollection. also you can add to the end line by line with myListBox.Items.Add()
string[] lines = System.IO.File.ReadAllLines(@"ignore.txt");

foreach (string line in lines)
{
    listBox.Items.Add(line);
}