C#读取一个文本文件。如何避免再次阅读

时间:2018-12-26 19:14:58

标签: c# readline

我是编程新手,调用方法时遇到问题。
我在第一种方法中读取了一个文本文件,并将每一行保存在一个列表中。该方法的返回类型为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;
}

2 个答案:

答案 0 :(得分:5)

就像我在评论中所说,只需读取整个文件一次,然后使用File.ReadAllLines()将其保存到List<string>中(将输出保存到列表中)。一旦有了该文件,就可以直接直接使用List<string>,而不必每次都返回读取文件。见下文。

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);
    }
}

答案 1 :(得分:0)

如果我对您的理解正确,那么您想一次从一个文本文件中读取文本吗?

如果是这样,请尝试  找出此文件的位置

for room in raw_json_data['rooms']:
    print(room['anchor_id'])

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

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

根据您要处理的文本文件信息,可以从此处开始进行处理。

请告诉我该解决方案是否有帮助。