如何将文本文件的行添加到列表框(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);
}