У меня есть этот массив
char[] A = ['1', '2', '3', '4']
И я хочу преобразовать его в int []
int[] Aint=[1, 2, 3, 4]
Любые идеи?
Я только начал программировать
Спасибо
У меня есть этот массив
char[] A = ['1', '2', '3', '4']
И я хочу преобразовать его в int []
int[] Aint=[1, 2, 3, 4]
Любые идеи?
Я только начал программировать
Спасибо
Другой вариант, используя Array.ConvertAll
и Char.GetNumericValue
:
int[] Aint = Array.ConvertAll(A, c => (int)Char.GetNumericValue(c));
Чтобы получить числовое значение символа цифры (от '0'
до '9'
), вы можете просто вычесть код '0'
из своего собственного.
int[] Aint = A.Select(a => a - '0').ToArray();
Символам цифр присваиваются последовательные кодовые обозначения. '0'
имеет код 48
; '1'
имеет код 49
; и т.д. до '9'
, который имеет код 57
. Таким образом, когда вы вычитаете двухзначные символы, вы получите такой же результат, как если бы вы вычитали свои числовые значения. Вычитание '0'
из любой цифры даст вам последнее абсолютное значение.
Добавьте оператор using для using System.Linq;
, затем вы можете сделать следующее:
int[] Aint = A.Select(i => Int32.Parse(i.ToString())).ToArray();
Вы получите исключение, если элемент в A
не может быть проанализирован.
Пожалуйста, сделайте вот это
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]);
}
Немного Linq должен сделать трюк:
int[] Aint = A.Select(c => c - 48).ToArray(); // or c - '0'
Вы также можете сделать это:
int[] Aint = A.Select(c => Convert.ToInt32(c.ToString())).ToArray();
Это выберет весь массив символов как строку, преобразует их в массив, а затем вернет целое число массива.