我的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.
所以有人可以建议我如何解决这个问题吗?
答案 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个。
所以,这取决于你需要什么(我认为谢尔盖的一个更清楚,它只是拒绝非整数输入)。