C#读取文本文件并将值存储在不同的列表中

Posted

技术标签:

【中文标题】C#读取文本文件并将值存储在不同的列表中【英文标题】:C# Read text file and store values in different lists 【发布时间】:2021-04-16 06:42:21 【问题描述】:

我有以下问题。我想读取一个文本文件并将值存储在不同的列表中。因此,我创建了一个类,但我在执行任务时遇到了一些问题。

文本文件中的值例如(不包括项目符号):

500 号楼 平200 100号楼 第十册 第五册 平10

现在我想创建一个列表屋、列表平面等,并将文本文件中的值存储在此列表中。

谁能帮我解决这个问题?

谢谢。

【问题讨论】:

那么让我们退后一步,你知道如何制作清单吗?你知道如何读取文件吗?你知道如何使用 string.Split 吗? 欢迎来到 Stack Overflow。你能告诉我们你到目前为止尝试了什么以及你坚持什么。这不是编码服务。例如,您是否有定义的数据结构 您好,您提到,您遇到了麻烦。你有什么异常吗?你有没有尝试过什么来完成这个任务?请在此处分享以获取更多信息。 【参考方案1】:

这是我迄今为止尝试过的:

static void Main()

    const string f = "example.txt";

    // 1
    // Declare new List.
    List<string> lines = new List<string>();

    // 2
    // Use using StreamReader for disposing.
    using (StreamReader r = new StreamReader(f))
    
        // 3
        // Use while != null pattern for loop
        string line;
        while ((line = r.ReadLine()) != null)
        
            // 4
            // Insert logic here.
            // ...
            // "line" is a line in the file. Add it to our List.
            lines.Add(line);
        
    

    // 5
    // Print out all the lines.
    foreach (string s in lines)
    
        Console.WriteLine(s);
    

    Console.ReadLine();

我能够读取文件并将其打印到屏幕上。但现在我想将列表拆分为不同的列表。

【讨论】:

【参考方案2】:

试试这个。

static void Main()

    const string f = "example.txt";

    // 1
    // Declare new List.
    List<string> house = new List<string>();
    List<string> flat = new List<string>();
    List<string> book = new List<string>();
    // 2
    // Use using StreamReader for disposing.
    using (StreamReader r = new StreamReader(f))
    
        // 3
        // Use while != null pattern for loop
        string line;
        while ((line = r.ReadLine()) != null)
        
            var arr = line.Split(' ');
            if(arr[0].ToLower()=="house")
            
                house.Add(arr[1]);
            
            if(arr[0].ToLower()=="book")
            
                book.Add(arr[1]);
                   
            if(arr[0].ToLower()=="flat")
            
                flat.Add(arr[1]);
            
        
    

    // 5
    // Print out all the lines.
    foreach (string s in lines)
    
        Console.WriteLine(s);
    

    Console.ReadLine();

【讨论】:

以上是关于C#读取文本文件并将值存储在不同的列表中的主要内容,如果未能解决你的问题,请参考以下文章

读取存储在文本文件中的列表[重复]

从 C# 资源中读取文本文件

在 python 中读取文本文件并从中创建两个列表

从文本文件中逐行提取数据并将其存储在python的列表中[重复]

Java:如何读取文本文件

使用 C# 从存储在 azure blob 存储中的 200gb 文本文件中读取一行