假设我有string str = "012345";
我想将其转换为类似intAry = {0, 1, 2, 3, 4, 5};
的数组。有任何想法吗?
我试过这个..
for (int i = 0; i < str.Length; i++)
{
intAry[i] = Convert.ToInt32(str[i]);
}
但是阵列的内容是48,49等。我应该在这里使用哪种正确的方法?
答案 0 :(得分:8)
for (int i = 0; i < str.Length; i++)
intAry[i] = str[i] - '0';
<强>更新强>
或者作为LINQ:
var array = str.Select(ch => ch - '0').ToArray();
答案 1 :(得分:3)
这个怎么样。
string source = "12345";
Int32[] array=source.Select(x => Int32.Parse(x.ToString())).ToArray();
但请记住来源中的每个字符都应该可转换为整数
答案 2 :(得分:0)
48,49等进入是因为这是ASCII值'0'。如果从char 中减去'0',它将为您提供正确的整数。无需转换。
intAry[i] = str[i] - '0';