将char数组转换为int数组c#

时间:2014-02-05 19:57:14

标签: c# arrays char int

我有这个数组

char[] A = ['1', '2', '3', '4']

我想将其转换为int []

int[] Aint=[1, 2, 3, 4]

有什么想法吗?

我刚刚开始编程

由于

6 个答案:

答案 0 :(得分:27)

另一种选择,使用Array.ConvertAllChar.GetNumericValue

int[] Aint = Array.ConvertAll(A, c => (int)Char.GetNumericValue(c));

答案 1 :(得分:7)

要获取数字字符('0''9')的数值,您只需从自己的代码点中减去'0'的代码点即可。

int[] Aint = A.Select(a => a - '0').ToArray();

为数字字符分配连续的代码点。 '0'有代码点48; '1'有代码点49;依此类推'9',其代码点为57。因此,当您减去两位数字符时,您将获得与减去其数字值相同的结果。从任何数字中减去'0'都可以得到后者的绝对值。

答案 2 :(得分:4)

using System.Linq;添加using语句,然后您可以执行以下操作:

int[] Aint = A.Select(i => Int32.Parse(i.ToString())).ToArray();

如果A中的元素无法解析,您将收到异常。

答案 3 :(得分:4)

请这样做

  char[] A = ['1', '2', '3', '4'];
  int[] Aint = new int[A.Length];      
  for (int i = 0;i < A.Length;i++)
  {
      Aint[i] = Convert.toInt32(A[i]); 
  }

答案 4 :(得分:2)

Linq的一点点应该可以解决问题:

int[] Aint = A.Select(c => c - 48).ToArray(); // or c - '0'

答案 5 :(得分:0)

你也可以这样做:

int[] Aint = A.Select(c => Convert.ToInt32(c.ToString())).ToArray();

这将选择所有字符数组作为字符串,将它们转换为数组,然后返回一个数组的整数。