字符串到int数组转换c#
我有一个字符串,它的值是'12345678'。我想将此值分配给整数数组,如数组的第一个索引包含1,数组的第二个索引包含2等等。所以,当我写下面的代码并执行,然后我收到值48为0索引和值49为第二索引,ascii值我的号码。 声明字符串到int数组转换c#
int[] ArryDIReadValue = new int[DI_COUNT_CHANNEL];
string binary = Convert.ToString(portData, 2);
ArryDIReadValue = binary.Select(n => Convert.ToInt32(n)).ToArray();
有人可以请帮助克服这个问题。
ArryDIReadValue = binary.Select(n => (n - '0')).ToArray();
简单,快捷。
n
- 是char
。所以,chars
0
,1
,... 9
有代码30,31,... 39。所以,要获得int值,我们需要从每个代码30中减去。我们知道,30是char 0
的代码。
我想知道它是如何工作的。你能解释一下它是如何工作的吗? –
尝试添加ToString(),如;
ArryDIReadValue = binary.Select(n => Convert.ToInt32(n.ToString())).ToArray();
谢谢..现在正在工作... –
使用char.GetNumericValue
:
ArryDIReadValue = binary.Select(n => (int)char.GetNumericValue(n)).ToArray();
这将只适用于当我声明双数组像 double [] ArryDIReadValue = binary.Select(n => char.GetNumericValue(n))。ToArray();否则会出错。 –
@PriyankaMehta我编辑了答案。它只是你想要的。 – Adrian
谢谢....它现在的工作 –
'binary.ToCharArray();'?之后,您可以将每个char解析为一个int并将它们粘贴到您的'ArryDIReadValue'数组中。 – michip96