邪键仙
2021-09-29 23:21
采纳率: 100%
浏览 49

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]");
                }
                
            }

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

  • 好问题 提建议
  • 收藏

3条回答 默认 最新

  • 神仙别闹 2021-09-30 00:00
    已采纳

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

    string[][] busroute = new string[bus.Length][]; 
    
    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • CSDN专家-文盲老顾 2021-09-30 08:47

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

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

    评论
    解决 1 无用
    打赏 举报
  • 字符串的分割是没错,问题在二维数组上面,你定义的二维数组没有指定元素个数导致越界了。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题