c# - 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],从而使程序崩溃。我究竟做错了什么?如何创建一个检查数组中的空值的测试以及如何在找到空白空间时输出消息?
解决方案
推荐阅读
- javascript - 即使在添加插件之后,目前也没有启用对实验性语法“类属性”的支持
- android - 经过身份验证的安全规则是否适用于 Firebase 匿名登录?
- angularjs - AngluarJS:错误:$injector:strictdi 需要显式注释
- java - 有没有办法在 Java 中获取 Cluster JVM 的详细信息
- jooq - JOOQ maven 代码生成和使用不同的数据库进行构建时和运行时
- git - 如何编辑 git rebase 内容然后通过 shell 保存?
- python - 如何在遍历所有文档的同时逐个更新文档的特定字段?
- mysql - 非典型 My-SQL 查询的执行顺序
- r - R:有没有办法插入完成年份序列的行?
- pandas - 缺失值(NaN 值)与填充值的重叠图