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

joh*_* Gu 0 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);
Run Code Online (Sandbox Code Playgroud)

但我得到以下例外: -

Input string was not in a correct format.
Run Code Online (Sandbox Code Playgroud)

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

Ser*_*kiy 5

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

"System.Linq.Enumerable+WhereSelectArrayIterator`1[System.String,System.String]"
Run Code Online (Sandbox Code Playgroud)

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

int value;
if (Int32.TryParse(ut.newTag, out value))
    tech.PartialTag = value;
Run Code Online (Sandbox Code Playgroud)

  • +1:除非OP想要完全忽略非数字,否则`TryParse`比奇怪的LINQ表达式更具可读性(甚至正则表达式在验证代码中更具可读性和预期性). (2认同)