首页 > 解决方案 > C#字符串数组防止null

问题描述

我有以下功能从 FTP 站点读取 CSV 文件:

public void FromCSV(string csvdata)
        {

        string[] data = csvdata.Split(",", StringSplitOptions.None);
            StudentId = data[0];
            FirstName = data[1];
            LastName = data[2];
            DateOfBirth = data[3];
            ImageData = data[4];         
    }

在某个时刻,我收到一个空的“ImageData”,它给了我下面的错误:

System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'

我做的唯一让它更接近工作的是:

public void FromCSV(string csvdata)
        {
            string[] data = csvdata.Split(",", StringSplitOptions.None);
            if ((data[0] != null && data[1] != null && data[2] != null && data[3] != null && data[4] != null) && ((data[0].Length != 0 && data[1].Length != 0 && data[2].Length != 0 && data[3].Length != 0 && data[4].Length != 0)))
            {                
                StudentId = data[0];
                FirstName = data[1];
                LastName = data[2];
                DateOfBirth = data[3];
                ImageData = data[4];
            }
            else
            {
                Console.WriteLine("CSV with incomplete data");
            }

        }

问题是它仍然允许空字符串进入数据[0:4],从而使程序崩溃。我究竟做错了什么?如何创建一个检查数组中的空值的测试以及如何在找到空白空间时输出消息?

标签: c#arraysstringboundsout

解决方案


推荐阅读