C# List<>用.ToArry方法转成数组的时候 经常报内存错误,求分析一下原因

        List<float> ListData1 = new List<float>(307200);
        List<float> ListData2 = new List<float>(307200);
        List<float> ListData3 = new List<float>(307200);
        List<float> ListData4 = new List<float>(307200);
        float[] data5 = new float[1228800];
                                                            try
                                                            {
                                                                data5 = (ListData1.Concat(ListData2).Concat(ListData3).Concat(ListData4)).ToArray();
                                                            }
                                                            catch (Exception ex)
                                                            {
                                                                Program.Logger.Info("camera1 data5 = (strListR.Concat(strListG).Concat(strListB)).ToArray();" + ex.Message); bRet = false; return bRet;
                                                            }

img

这个跟电脑内存大小有关,ToArray会开辟连续的空间。我复制运行你上面的代码,并没有引发异常。

float 4字节,你看看那些数组多少个*4,明显内存溢出,默认分配的堆大小不够造成的