Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读一个文本文件。如何避免再次阅读_C#_Readline - Fatal编程技术网

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

C# 读一个文本文件。如何避免再次阅读,c#,readline,C#,Readline,我是编程新手,在调用方法时遇到问题。 我在第一种方法中读取一个文本文件,并将每一行保存在一个列表中。方法的返回类型是List,这样我就可以在其他方法中使用文本文件的任何特定行。但问题是,每当我调用第一个方法时,我必须反复阅读文本文件。我必须调用该方法100多次,文本文件的长度超过1000行 public static List<double> readLine(int line) { //read a text file and save in readList r

我是编程新手,在调用方法时遇到问题。
我在第一种方法中读取一个文本文件,并将每一行保存在一个列表中。方法的返回类型是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;
}
公共静态列表读取行(int行)
{
//读取文本文件并保存在readList中
返回readList[行];
}
公共静态双重使用列表()
{
读线(1);
读线(2);
读线(3);
读线(4);
返回0;
}

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

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);
    }
}
公共类程序
{
私有静态列表行;
公共静态void Main()
{
//此时,行将具有整个文件。列表中不同索引中的每一行
lines=File.ReadAllLines(“…文件路径”).ToList();
useList();//但是请使用它
}
//只需使用与文件具有相同数据的列表
公共静态字符串readFromList(int num)
{
返回行[num];
} 
公共静态void useList()
{
字符串line1=readFromList(1);//甚至可以是字符串line1=lines[SomeNum];
字符串行2=readFromList(2);
}
}

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

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);
    }
}
公共类程序
{
私有静态列表行;
公共静态void Main()
{
//此时,行将具有整个文件。列表中不同索引中的每一行
lines=File.ReadAllLines(“…文件路径”).ToList();
useList();//但是请使用它
}
//只需使用与文件具有相同数据的列表
公共静态字符串readFromList(int num)
{
返回行[num];
} 
公共静态void useList()
{
字符串line1=readFromList(1);//甚至可以是字符串line1=lines[SomeNum];
字符串行2=readFromList(2);
}
}

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

如果是的话,试试看 找出这个文件的位置

string path = @"C:\path to textfile.txt";
然后使用system.io读取文件并保存。。这将返回一个字符串数组

string[] textfromfile = System.IO.File.ReadAllLines(path);
根据您对文本文件信息的处理方式,您可以从这里开始处理


请告诉我此解决方案是否有用。

如果我正确理解您的意思,您希望一次读取文本文件中的文本吗

如果是的话,试试看 找出这个文件的位置

string path = @"C:\path to textfile.txt";
然后使用system.io读取文件并保存。。这将返回一个字符串数组

string[] textfromfile = System.IO.File.ReadAllLines(path);
根据您对文本文件信息的处理方式,您可以从这里开始处理


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

为什么不阅读整个文件并将所有行保存在
列表中,然后只对每行使用它。我们不喜欢这里的代码图片。始终以文本形式发布。这里不要太挑剔,但您已经成功地在短短几行中发布了大量有问题的代码。从教程开始。@Jimenemex,但即使我阅读了整个文件,每当调用第一个方法时,我都必须再次阅读文本文件。对吧?以后请不要发布代码的图片。以文本形式发布代码我认为您需要在寻址代码之前修复您的流程。为什么每次都必须
readLine
读取文件
readLine
没有指定文件名,所以我假设它是一个静态文件,您可以只读取和存储一次。消费者
useList
将如何处理
readLine
的结果?你在这里的逻辑实际上是想做什么?为什么你不阅读整个文件并将所有行保存在
列表中,然后只对每一行使用它。我们不喜欢这里的代码图片。始终以文本形式发布。这里不要太挑剔,但您已经成功地在短短几行中发布了大量有问题的代码。从教程开始。@Jimenemex,但即使我阅读了整个文件,每当调用第一个方法时,我都必须再次阅读文本文件。对吧?以后请不要发布代码的图片。以文本形式发布代码我认为您需要在寻址代码之前修复您的流程。为什么每次都必须
readLine
读取文件
readLine
没有指定文件名,所以我假设它是一个静态文件,您可以只读取和存储一次。消费者
useList
将如何处理
readLine
的结果?你的逻辑到底是什么?谢谢你much@Anthony如果此答案解决了您的问题(或使您达成了解决方案),请记住单击复选标记接受此答案:非常感谢much@Anthony如果此答案解决了您的问题(或帮助您解决了问题),请记住单击复选标记接受此答案: