C#读取文本文件并将数据存储在格式化的数组中。

4

我有一个文本文件,其中包含以下内容

Name address phone        salary
Jack Boston  923-433-666  10000

所有字段都以空格分隔。

我正在尝试编写一个C#程序,该程序应该读取此文本文件,然后将其存储在格式化数组中。

我的数组如下:

address
salary

每当我尝试在谷歌上查找时,我得到的结果都是关于如何在C#中读写文本文件的内容。非常感谢您的时间。

你在哪里感到困惑?你尝试过什么?最难的部分可能是加载文件。 - Jetti
4
如果您可以控制它,我认为空格不是一个很好的分隔符。您可能想要更改它。 - CAbbott
我能够读取文件,但不确定如何加载...因为要加载文件,我需要第二个(地址)和第四个字段(薪水)。 - Csharp_learner
3个回答

6
你可以使用File.ReadAllLines方法将文件加载到一个数组中。然后您可以使用for循环来遍历每一行,并使用字符串类型的Split方法将每一行分离成另一个数组,并将值存储在您的格式化数组中。
类似这样:
    static void Main(string[] args)
    {
        var lines = File.ReadAllLines("filename.txt");

        for (int i = 0; i < lines.Length; i++)
        {
            var fields = lines[i].Split(' ');
        }
    }

非常有帮助,非常感谢! - Chiragkumar Thakar

3
不要重新发明轮子。可以使用例如快速csv阅读器,在其中可以指定所需的分隔符
还有很多类似的工具在互联网上,只需搜索并选择适合您需要的那个。

1

此答案假设您不知道每行中每个字符串之间有多少空格。

// Method to split a line into a string array separated by whitespace
private string[] Splitter(string input)
{
    return Regex.Split(intput, @"\W+");
}


// Another code snippet to  read the file and break the lines into arrays 
// of strings and store the arrays in a list.
List<String[]> arrayList = new List<String[]>();

using (FileStream fStream = File.OpenRead(@"C:\SomeDirectory\SomeFile.txt"))
{
    using(TextReader reader = new StreamReader(fStream))
    {
        string line = "";
        while(!String.IsNullOrEmpty(line = reader.ReadLine()))
        {
            arrayList.Add(Splitter(line));
        }
    }
} 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接