Я внес небольшие изменения в ваш код, предоставив и выполнив основной регион, в котором вы столкнулись с ошибкой.
Не уверен, что как ваш входной массив строк, я предполагаю, что в обоих случаях,
1 - содержит строку "ba ~ 7U", "m4 ~ ro5" - сбой преобразования
2 - только цифры "01XX ~ 78", - Пройдено преобразование
( "01XX ~ 70000000008", , сбой происходит по типу int
но превышает пределы int
)
static void test()
{
int ID, I = 0; int SomeValue = 0;
//if (File.Exists("CompetitorDataFile.txt"))
//{
string[] arr = new string[] { "01XX~78", "ba~7U", "m4~ro5" };
I = arr.Length;
ID = I + 1;
var ss = Convert.ToString(ID);
int val=0;
for (int z = 0; z < arr.Length; z++)
{
string[] arr2 = arr[z].Split('~');
if (SomeValue == checkConvertion(arr2[1] ))
{
var valid2 = false;
}
}
//}
//else
//{
// ID = I;
// var res = Convert.ToString(ID);
//}
}
static int checkConvertion(string stringInput)
{
int val;
var convertionResult = int .TryParse(stringInput, out val);
// int.Parse(stringInput); -- also you can use this
return convertionResult ? val : 0;
}
Вы должны быть более осторожны с диапазоном типа данных int
, если он превышает int. Max
(извините за редактирование кода, плохие названия конвенций и комментирование многих областей, я просто хочу показать вам конверсию)