繁体   English   中英

索引在-C#中超出数组的范围

[英]Index was outside the bounds of the array in - C#

我有一个.txt文件,其设置如下:

1 Username Email MD5Password PlainPassword

现在,我想将此.txt放入SQL,所以我有以下代码:

string[] SQL = line.Split(' ');

dynamic ID = SQL[0];
dynamic Username = SQL[1];
dynamic Email = SQL[2];
dynamic Password = SQL[3];
dynamic PlainPassword = SQL[4];

string lines = "INSERT INTO `dbsearch`(`username`, `password`, `email`, `extra`) VALUES ('" + Username + "', '" + Password + "', '" + Email + "', '" + PlainPassword + "')";

但是.txt文件中的某些行没有密码或纯密码,因此出现此错误:

Exception thrown: 'System.IndexOutOfRangeException' in Search SQL Creator.exe

Additional information: Index was outside the bounds of the array.

我怎样才能解决这个问题?

如果不确定是否有最后一个元素,可以在访问数组内部元素之前进行检查:

string[] sql = line.Split(' ');

dynamic id = sql[0];
dynamic username = sql[1];
dynamic email = sql[2];
dynamic password = sql.Length >= 4 ? sql[3] : null;
dynamic plainPassword = sql.Length == 5 ? sql[4] : null;

您还可以使用LINQ:

string[] sql = line.Split(' ');

string id = sql[0];
string username = sql[1];
string email = sql[2];
string password = sql.Skip(3).FirstOrDefault();
string plainPassword = sql.Skip(4).FirstOrDefault();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM