Я пытаюсь вычислить контрольную сумму NMEA на основе строки, чтобы я мог сравнить ее с заданной контрольной суммой и объявить, содержит ли строка ошибку или нет.Вот способ, которым я пытаюсь это сделать (данный индекс 0 является просто примером для одной строки)
List<string> richTextBoxLines = richTextBox1.Lines.ToList();
richTextBoxLines.RemoveAll(x => !x.Contains("GPGGA"));
richTextBox1.Lines = richTextBoxLines.ToArray();
NOLbox.Text = richTextBox1.Lines.Count().ToString();
int finalCheckSum = 0;
string sumOfBytes = richTextBox1.Lines[0].Split('*').First().Substring(1);
for (int i = 0; i == sumOfBytes.Length; i++)
{
finalCheckSum ^= Convert.ToByte(sumOfBytes[i]);
}
checksumValue.Text = finalCheckSum.ToString();
Первая часть удаляет сообщения, отличные от GGA, а остальная часть имеетрассчитать контрольную сумму.Дело в том, что мне понадобится значение переменной FinalCheckSum
вне цикла, и пока оно возвращает 0 - потому что, конечно, оно объявлено как 0, хотя объявлять его внутри цикла бессмысленно.Учитывая это, как я могу получить значение переменной вне цикла, чтобы я мог использовать его позже?