【发布时间】:2020-05-24 04:09:39
【问题描述】:
所以我通过将接收到的数据放入一个数组来维护以前和当前从文本框中接收到的数据,但是当使用 split() 将它们拆分时,我的一个 newPosition 数组不起作用,触发“索引超出了数组”,但另一个 oldPosition 工作正常。我有点卡住了
这是我目前的实现
for (i = 1; i < textBox_ReceievedData.Lines.Length; i++)
{
currentPos = textBox_ReceievedData.Lines[i];
prevPos = textBox_ReceievedData.Lines[i - 1];
System.Console.WriteLine("array pos " + i);
System.Console.WriteLine("previous array " +prevPos);
System.Console.WriteLine("current Array " + currentPos);
oldPosition = prevPos.Split(delimiterChars);
newPosition = currentPos.Split(delimiterChars);
System.Console.WriteLine("op " + oldPosition[2]);// used to get value in 2nd postition
//System.Console.WriteLine("np " + newPosition[2]);// used to get value in 2nd postition, but will get an error
}
输出:
array pos 2
previous array $GPGGA,090156.80,3651.09301173,S,17445.84851186,E,1,05,2.87,038.38,M,-21.3213,M,,*63
current Array $GPGGA,090157.00,3651.09230339,S,17445.84886368,E,1,05,2.87,038.33,M,-21.3213,M,,*6D
op 3651.09301173
array pos 3
previous array $GPGGA,090157.00,3651.09230339,S,17445.84886368,E,1,05,2.87,038.33,M,-21.3213,M,,*6D
current Array $GPGGA,090157.20,3651.09159552,S,17445.84921771,E,1,05,2.87,038.29,M,-21.3213,M,,*68
op 3651.09230339
如果我使用 System.Console.WriteLine("np " + newPositon) 我会得到,
System.String[]
【问题讨论】:
-
表示newPosition中不存在索引2。也就是说它只有 2 个元素。
-
拆分后没有值
-
如果我使用 System.Console.WriteLine("np " + newPositon) 我会得到 System.String[]
-
@Cherios 我刚刚检查过,你的代码工作正常