用分隔符读取文本文件中的所有行

时间:2015-03-04 16:01:58

标签: c# text-files readline

我有一个包含此内容的文件:

1,2,3,4,5#
1,2,3,4,5#

如何使用readline读取所有行?重要的是我需要将每行中的值分开,我的意思是第一行的值1,2,3,4,5应该分开。< / p>

假设我有一个名为myarray的数组,它可以保存第一行中的所有值:数组应该是这样的:

myarray[0]=1
myarray[1]=2
myarray[2]=3
myarray[3]=4
myarray[4]=5

我在IO#c /

中很新

祝你好运

3 个答案:

答案 0 :(得分:8)

使用LINQ,您可以:

List<string[]> list = File.ReadLines("YourFile.txt")
                          .Select(r => r.TrimEnd('#'))
                          .Select(line => line.Split(','))
                          .ToList();
  • File.ReadLines将逐行读取文件。
  • Select(r => r.TrimEnd('#'))会从结尾处删除# 线
  • .Select(line => line.Split(','))会在逗号上拆分该行并返回一个字符串项数组。
  • ToList()会给你一个List<string[]>回复。

您还可以在单​​个TrimEnd语句中使用SplitSelect,如下所示(它会产生相同的输出)

List<string[]> list = File.ReadLines("YourFile.txt")
                          .Select(r => r.TrimEnd('#').Split(','))
                          .ToList();

答案 1 :(得分:2)

试试这个

string[] readText = File.ReadAllLines(path);

这将返回所有行的数组。

https://msdn.microsoft.com/en-us/library/s2tte0y1(v=vs.110).aspx

答案 2 :(得分:1)

您可以使用StreamReader读取文件中的所有行,并使用给定的分隔符(,)拆分它们。

var filename = @"C:\data.txt";
using (var sr = new StreamReader(filename))
{
    var contents = sr.ReadToEnd();
    var myarray = contents.
        Split(',');
}

虽然我更喜欢LINQ方法的答案。