Каждый ответил, что вы пытаетесь разобрать неверные строки как целые.Они правы.Однако, очевидно, люди упустили, что ваш код не эквивалентен, потому что вы перевернули троичные предложения.Это будет ваш эквивалентный код:
//if this is your code:
if (result[11] == string.Empty) // this block works fine
{
user.Age = Int32.Parse(result[11]);
}
else
{
user.Age = null;
}
//This is your equivalent ternary. You have inverted here
user.Age = (result[11] == string.Empty) ? Int32.Parse(result[11]) :
null;