C#List.Add方法速度太慢,应该如何处理?

问题遇到的现象和发生背景

使用List.Add方法添加元素的速度太慢,这种情况应该怎么处理?

用代码块功能插入代码,请勿粘贴截图
                    using (StreamReader sr = new StreamReader(pr.path))
                    {
                        string line = "";
                        Stopwatch sw = new Stopwatch();

                        sw.Reset();
                        sw.Start();
                        do
                        {
                            line = sr.ReadLine();
                            xdata.Add(double.Parse(line.Split(',')[0]));
                            ydata.Add(double.Parse(line.Split(',')[1]));
                            zdata.Add(double.Parse(line.Split(',')[2]));
                        }
                        while (!sr.EndOfStream);
                        sw.Stop();
                        TimeSpan ts = sw.Elapsed;
                        int seconds = ts.Seconds;
                        Console.WriteLine("seconds:" + seconds.ToString());
                    }
运行结果及报错内容

以上的do-while循环中,我测试了如果注释了三个list.add语句,循环的时间只有3s,如果不注释,循环的时间达到了31s,差了非常多!

我想要达到的结果

使用别的方式添加,以达到快速循环结束的方法

一个文件800M确实有些大了,不过我认为你的代码里面也有需要优化的空间;
优化方向建议如下:
1、你读出的文件都是按照逗号进行分割的,可以在读的时候直接进行按逗号读取
引用Microsoft.VisualBasic.FileIO.TextFieldParser
核心代码如下:

parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");

2、可以采用多线程方式读取,并行进行处理
比如可以按行数起线程进行操作,第一个线程读1-2000行,第二个2001-4000行等,处理完成后再进行合并即可;
具体行数可以自己设计....

以上仅供参考

光循环就循环3秒,你是有多少数据要处理啊
这么多数据该存数据库存数据库,不要什么都存文件里,那处理起来能不慢吗