将字符串数转换为数组C#

时间:2011-04-20 11:28:43

标签: c#

假设我有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等。我应该在这里使用哪种正确的方法?

3 个答案:

答案 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';