c#一维数组赋值给二维数组,一直报越界


//读取文件
            Console.WriteLine("\n导入公交车线路文件\n");
            string FileToRead = @"D:\课程\软工\作业\busroute.txt";
            string[] bus = File.ReadAllLines(FileToRead);
            string[][] busroute = { };
            //分割
            for (int i=0;i<bus.Length;i++)
            {
                 busroute[i]  = bus[i].Split('、');
            }
            Console.WriteLine("\n读取成功\n");

代码如上,然后不停报错越界

img

我改了一下for循环内的代码


for (int i=0;i<bus.Length;i++)
            {
                string [] linshi = bus[i].Split('、');
                for(int j=0;j<linshi.Length; j++)
                {
                    Console.WriteLine("linshi[j]");
                }
                
            }

然后运行成功了,这就说明字符串的分割没错,所以我很不明白我赋值二维数组错在了哪里。

将二位数组的声明改成这样试一下

string[][] busroute = new string[bus.Length][]; 

使用 [] 定义数组,需要定义长度,修改长度是很麻烦的事情

建议使用 List 来完成数据添加,然后 ToArray 转成 [] 格式的数组

字符串的分割是没错,问题在二维数组上面,你定义的二维数组没有指定元素个数导致越界了。