索引超出了c#中数组的边界

本文关键字:数组 边界 索引 | 更新日期: 2023-09-27 18:17:19

我有一个.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.

我该如何解决这个问题?

索引超出了c#中数组的边界

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

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();