У меня есть следующий код:C#, Индекс находился вне границ массива
void serialport_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string serialData = serialport.ReadExisting().Replace("/n", "");
string[] splitSerialData = serialData.Split(new Char[] {','}); //Split up the data
this.Invoke(new Action(delegate()
{
this.temperatureLabel.Text = splitSerialData[0];
}));
}
И это работает отлично, но когда я делаю:
void serialport_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string serialData = serialport.ReadExisting().Replace("/n", "");
string[] splitSerialData = serialData.Split(new Char[] {','}); //Split up the data
this.Invoke(new Action(delegate()
{
this.temperatureLabel.Text = splitSerialData[0];
this.lightLevelLabel.Text = splitSerialData[1];
}));
}
Это не работает, и говорит " Индекс находился вне границ массива".
Вы уверены, что это '/ n', а не' \ n'? .. – dasblinkenlight
У вас есть запятая в вашей строке? Подсказка: нет. – Ryan
Вы должны проверить количество строк в splitSerialData, например. используя splitSerialData.Length> 2. – Casperah