Вместо ArrayList
используйте List<string>
для температуры и List<string[]>
для userDatas
.
Когда вы закончите заполнять их, вы можете преобразовать в массив, просто вызвав userDatas.ToArray()
Также ваша ошибка может быть здесь:
ArrayList temp = userDatas;
if ((temp[1] == ic) && (temp[2] == password))
{
return true;
}
Вы не проверяете сначала, чтобы убедиться, что у temp есть 3 или более элементов, прежде чем ссылаться на индексы 1 и 2. Кроме того, почему вы создаете temp только для присвоения его userDatas? Почему бы просто не сказать:
if (userDatas.Count() >= 3 && (userDatas[1] == ic) && (userDatas[2] == password))
return true;
EDIT
В соответствии с запросом, вот мой оригинальный код, хотя большая часть его уже написана, но вот он (ваш код сначала не отображался):
StreamReader reader = new StreamReader();
List<string[]> datas = new List<string[]>();
List<string> data = new List<string>();
string line;
while (!reader.EndOfStream) {
line = reader.ReadLine();
datas.Add(line.Split(','));
}
string[] datas_array = datas.ToArray();