我有一个字符串,其值为' 12345678'。我想将此值赋给整数数组,就像数组的第一个索引包含1一样,数组的第二个索引包含2等等。因此,当我写下代码并执行时,我收到的值为48表示0索引,值49表示第二个索引,ascii值为我的号码。 宣言
int[] ArryDIReadValue = new int[DI_COUNT_CHANNEL];
string binary = Convert.ToString(portData, 2);
ArryDIReadValue = binary.Select(n => Convert.ToInt32(n)).ToArray();
有人可以帮助解决这个问题。
答案 0 :(得分:2)
ArryDIReadValue = binary.Select(n => (n - '0')).ToArray();
简单快捷。
n
- 是char
。因此,chars
0
,1
,... 9
包含代码30,31,... 39.因此,要获得int值,我们需要减去每个代码30.我们知道,30是char 0
的代码。
答案 1 :(得分:1)
尝试添加ToString(),例如;
ArryDIReadValue = binary.Select(n => Convert.ToInt32(n.ToString())).ToArray();
答案 2 :(得分:1)
使用char.GetNumericValue
:
ArryDIReadValue = binary.Select(n => (int)char.GetNumericValue(n)).ToArray();