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

read all lines in text file with separator

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

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

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

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

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

我对 c# 中的 IO 很陌生

此致

试试这个

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

这将 return 所有行的数组。

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

使用 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(',')) 会用逗号分隔行,return 字符串项数组。
  • ToList() 会给你一个 List<string[]> 回报。

您还可以在单​​个 Select 语句中使用 TrimEndSplit,如下所示,(结果相同):

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

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

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

尽管我确实更喜欢 LINQ 方法的答案。