I have this array
char[] A = ['1', '2', '3', '4']
And I want to convert it to int[]
int[] Aint=[1, 2, 3, 4]
Any ideas?
I just started programming
Thanks
Another option, using Array.ConvertAll and Char.GetNumericValue:
int[] Aint = Array.ConvertAll(A, c => (int)Char.GetNumericValue(c));
Array.ConvertAll instead of Select(…).ToArray()? I'm asking because the latter seems to be much more in vogue nowadays (and your lambda expression requires C# 3 anyway).Array.ConvertAll is just more efficient than Select..ToArray since it pre-allocates a correctly-sized array and doesn't do any resizing. It's also readable/explicit as Gray has already mentioned.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.
using System.Linq to the top of your code.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.
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());
}
charto it's correspondingintvalue? Do you know how to create a new array based on another array's values?