C#StreamReader使用分隔符保存到Array

我有一个带有制表符分隔数据的文本文件。 我在C#应用程序中需要的是我从文本文件中读取一行并将它们保存到一个数组中,在每个文件中将它们分开。 然后我对下一行做同样的事情。

我的代码:

 StreamReader sr = new StreamReader(dlg.FileName); string s = sr.ReadLine(); 

现在,我已经尝试将该行写入数组,但这不起作用。 有人怎么管理这个?

使用Split方法创建行的Array

 string[] parts = s.Split('\t'); 

请在此处查看有关Split()的文档

  foreach (string line in System.IO.File.ReadAllLines(dlg.FileName)) { var myArray = line.Split('\t'); } 

s.Split('\t')将按制表符字符拆分字符串,并创建一个具有适当长度的string[]

修改您的示例代码:

 StreamReader sr = new StreamReader(dlg.FileName); string s = sr.ReadLine(); var items = s.Split('\t'); 

最后,items包含一个字符串数组,表示选项卡之间的字符。 选项卡不包含在arrays中。 该数组可能包含空元素(对于两个连续选项卡的情况)。

使用String.Split()方法: http : //msdn.microsoft.com/en-us/library/b873y76a.aspx

 StreamReader reader = new StreamReader("input.txt"); string[] content = reader.ReadToEnd().Replace("\n","").Split('\t'); 

如果你想保持新线比

string [] content = reader.ReadToEnd()。Split(’\ t’);

在下面的示例中, items将是包含每行文本值的String[] 。 它将被每次迭代覆盖,因此您需要在循环内对其执行某些操作。 将其保存到更大的集合,将其写入文件等…

 StreamReader sr = new StreamReader(dlg.FileName); while (sr.Peek() >= 0) { var line = sr.ReadLine(); var items = line.Split(new Char[] { '\t' }); } 

如果文件只包含一行,则使用:

 string[] myArray = s.Split('\t');