Я прогуглил это много, но мои навыки C # довольно ужасны, и я просто не понимаю, почему это не работает.
У меня есть строка, полученная из объекта сеанса, который я не могу контролировать. Строка содержит несколько предложений, разделенных шестью подчеркиваниями. e.g.:
Sentence number one______Sentence number two______Sentence number three etc
Я хочу разделить эту строку на шесть подчеркиваний и вернуть каждый элемент в результирующий массив.
Вот код, который у меня есть:
string itemsPlanner = HttpContext.Current.Session["itemsPlanner"].ToString();
string[] arrItemsPlanner = itemsPlanner.Split(new string[] { "______" }, StringSplitOptions.None);
foreach (string i in arrItemsPlanner)
{
newItemsPlanner += "debug1: " + i; //This returns what looks like a number, as I'd expect, starting at zero and iterating by one each loop.
int itemNumber;
try
{
itemNumber = Convert.ToInt32(i);
string sentence = arrItemsPlanner[itemNumber].ToString();
}
catch (FormatException e)
{
return "Input string is not a sequence of digits.";
}
catch (OverflowException e)
{
return "The number cannot fit in an Int32.";
}
finally
{
return "Fail!"
}
}
Всякий раз, когда я запускаю это, сеанс успешно восстанавливается, но строка, которая говорит: itemNumber = Convert.ToInt32 (i); каждый раз происходит сбой, и я получаю сообщение об ошибке «Входная строка не является последовательностью цифр».
Может кто-нибудь указать мне правильное направление с этим, пожалуйста?
Большое спасибо!