输入字符串的格式不正确。当我尝试转换char-> string-> int时

时间:2013-12-19 17:04:41

标签: c# entity-framework

我的asp.net vmc Web应用程序中包含以下代码: -

var getNumbers = (from t in ut.newTag
                                where char.IsDigit(t)
                                select t).ToString();
            tech.PartialTag = Convert.ToInt32(getNumbers);

但我得到以下例外: -

Input string was not in a correct format.

所以有人可以建议我如何解决这个问题吗?

2 个答案:

答案 0 :(得分:5)

getNumbers是一个字符串,包含字符串枚举器的类型名称。它看起来像

"System.Linq.Enumerable+WhereSelectArrayIterator`1[System.String,System.String]"

您显然无法将该类型名称转换为整数。如果您想尝试解析newTag并将其分配给PartialTag,如果有整数:

int value;
if (Int32.TryParse(ut.newTag, out value))
    tech.PartialTag = value;

答案 1 :(得分:3)

有一个字符串的字符串以char[]为参数,所以

var getNumbers = new String((from t in ut.newTag
                                where char.IsDigit(t)
                                select t).ToArray());
tech.PartialTag = Convert.ToInt32(getNumbers);

与谢尔盖的答案存在差异

如果你的输入是1A2,谢尔盖的解决方案将不接受输入。

但我的解决方案(基于你的解决方案)将需要12个。

所以,这取决于你需要什么(我认为谢尔盖的一个更清楚,它只是拒绝非整数输入)。