convert char array to int array c#

后端 未结 6 967
抹茶落季
抹茶落季 2021-01-01 22:45

I have this array

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

And I want to convert it to int[]

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


        
相关标签:
6条回答
  • 2021-01-01 22:55

    Please do Like this

      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].ToString()); 
      }
    
    0 讨论(0)
  • 2021-01-01 22:58

    Add a using statement for using System.Linq; then you can do the following:

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

    You will get an exception if an element in A cannot be parsed.

    0 讨论(0)
  • 2021-01-01 22:59

    To get the numeric value of a digit character ('0' to '9'), you can simply subtract the codepoint of '0' from its own.

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

    The digit characters are assigned consecutive codepoints. '0' has codepoint 48; '1' has codepoint 49; and so on until '9', which has codepoint 57. Thus, when you subtract two digit characters, you would get the same result as if you were subtracting their numeric values. Subtracting '0' from any digit would give you the latter's absolute value.

    0 讨论(0)
  • 2021-01-01 22:59

    A little bit of Linq should do the trick:

    int[] Aint = A.Select(c => c - 48).ToArray(); // or c - '0'
    
    0 讨论(0)
  • 2021-01-01 23:12

    You can also do this:

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

    This will select all character array as string, converts them to array, then return an integer of array.

    0 讨论(0)
  • 2021-01-01 23:22

    Another option, using Array.ConvertAll and Char.GetNumericValue:

    int[] Aint = Array.ConvertAll(A, c => (int)Char.GetNumericValue(c));
    
    0 讨论(0)
提交回复
热议问题