Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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#_File Io_Listbox - Fatal编程技术网

C# 当我试图将文件内容输入列表框时,程序在运行时冻结

C# 当我试图将文件内容输入列表框时,程序在运行时冻结,c#,file-io,listbox,C#,File Io,Listbox,我试图将此文件的内容添加到列表框中,但每次添加时,它都会冻结应用程序。我在变量行上放了一个手表,其中包含我想要输入的数据,但它从文件中读取数据,错误就发生了 { StreamReader inputfile; inputfile = File.OpenText("ClosingStock.txt"); while (!inputfile.EndOfStream)

我试图将此文件的内容添加到列表框中,但每次添加时,它都会冻结应用程序。我在变量行上放了一个手表,其中包含我想要输入的数据,但它从文件中读取数据,错误就发生了

        {

            StreamReader inputfile;

            inputfile = File.OpenText("ClosingStock.txt");

            while (!inputfile.EndOfStream)
            {
                string[] lines = File.ReadAllLines("ClosingStock.txt");
                SummaryClosinglistBox.Items.Add(lines).ToString();
            }
            
        }

Any help would be very much appreciated.

此循环条件将导致无限循环,因为您从未更改inputFile变量的EndOFStream

while (!inputfile.EndOfStream)
使用File.ReadAllLines读取该行并不意味着inputFile流前进到流的末尾。ReadAllLines打开自己的流,读取所有内容,然后关闭内部流。因此,您只需要读取这些行,最终添加一个对文件存在性的检查。空文件不会执行任何操作,因为不会添加任何行。但是如果你真的想要的话,你也可以添加一个关于行数的检查

if(File.Exists("ClosingStock.txt"))
{
    string[] lines = File.ReadAllLines("ClosingStock.txt");

    if(lines != null && lines.Length > 0)
        SummaryClosinglistBox.Items.AddRange(lines);
}

请注意,要向ObjectCollection添加一组项,您应该使用AddRange,而不仅仅是add

,只需删除inputFile和无用的循环即可。试着读台词。如果文件为空,则不会添加任何内容。如果您需要检查文件是否存在,请使用file.exists您从未从inputfile读取过-那么它应该如何结束?对不起,我是编程新手。我以为File.ReadAlllines正在读取文件?我的文件是13列乘5行整数。有没有更好的方法将这些数据输出到列表框?谢谢,这很有效。我还想在每个元素之间添加一个空格并删除逗号。有没有办法让我做到这一点?抱歉,还有一个问题。您可以使用,然后用重新组装线路。你可以找到很多这样的例子。非常感谢。祝你有美好的一天!