【问题标题】:c# read a text file. How to avoid reading it againc# 读取一个文本文件。如何避免再次阅读
【发布时间】:2023-03-08 23:45:01
【问题描述】:

我是编程新手,但在调用方法时遇到问题。
我在第一种方法中读取了一个文本文件并将每一行保存在一个列表中。并且该方法的返回类型是 List 以便我可以将文本文件的任何特定行带到其他方法中。但问题是每当我调用第一种方法时,我都必须一遍又一遍地阅读文本文件。我要调用该方法超过100次,文本文件的长度超过1000行。

public static List<double> readLine(int line) 
{
    //read a text file and save in readList
    return readList[line];
}

public static double useList()
{
    readLine(1);
    readLine(2);
    readLine(3);
    readLine(4);

   return 0;
}

【问题讨论】:

  • 你为什么不阅读整个文件并将所有行保存在List&lt;string&gt; 中,然后只对每一行使用它。
  • 我们不喜欢这里的代码图片。始终将其作为文本发布。在这里不要太挑剔,但是您已经设法在很短的几行中发布了大量有问题的代码。从教程开始。
  • @Jimenemex 但是即使我阅读了整个文件,每当我调用第一种方法时,我都必须再次阅读文本文件。对吗?
  • 以后,请不要发布图片的代码。发布代码为 text
  • 我认为您需要先修复您的流程,然后再处理您的代码。为什么readLine 每次都要读取文件? readLine 没有给出文件名,所以我认为它是一些静态文件,您可以读取并存储一次。消费者useList 将如何处理readLine 的结果?你的逻辑是什么?

标签: c# readline


【解决方案1】:

就像我在评论中所说,只需阅读整个文件一次,然后使用File.ReadAllLines() 将其保存到List&lt;string&gt; 中(将输出转换为列表)。一旦你有了它,你就可以直接使用List&lt;string&gt;,而不必每次都回去读取文件。见下文。

public class Program
{
    private static List<string> lines;
    public static void Main()
    {
        // At this point lines will have the entire file. Each line in a different index in the list
        lines = File.ReadAllLines("..path to file").ToList();

        useList(); // Use it however
    }

    // Just use the List which has the same data as the file
    public static string readFromList(int num)
    {
        return lines[num];
    } 

    public static void useList()
    {
        string line1 = readFromList(1); // Could even be string line1 = lines[SomeNum];
        string line2 = readFromList(2);
    }
}

【讨论】:

【解决方案2】:

如果我理解正确,您想一次性从文本文件中读取文本吗?

如果是这样试试 找出这个文件的位置

string path = @"C:\path to textfile.txt";

然后使用 system.io 读取文件并保存它们。这将返回一个字符串数组

string[] textfromfile = System.IO.File.ReadAllLines(path);

根据你想对文本文件信息做什么,你可以从这里开始处理它..

如果此解决方案有帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-06
    • 2015-09-28
    • 2020-11-12
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 2012-10-13
    • 2016-11-22
    相关资源
    最近更新 更多