Как преобразовать массивы в списки C#
У меня есть несколько массивов для сбора данных из запроса postgreSQL. Данные поступают от радиочастотного приемника, развернутого в полевых условиях. Когда пользователь устанавливает диапазон частот и время запроса, данные отображаются в gridview и передаются оттуда в массивы, обозначенные значением I и значением I+, соответствующим номеру ячейки в столбце, содержащем широту радиочастотного приемника. Эти данные используются для построения диаграмм рассеяния xy, представляющих (частоту, амплитуду), (частоту, полосу пропускания) и т. д. Я хотел бы создать список и объекты вместо использования массивов.
Что я уже пробовал:
dataGridView1.SelectAll(); numCells = dataGridView1.SelectedCells.Count; for (i = 14; i < (numCells); i += 14) { if (i < numCells) { if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.464258839) { UCS1size += 1; } else if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.42859146) { MOCsize += 1; } else if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.490616471) { AMsize += 1; } else if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.525409911) { UCS2size += 1; } else if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.560529988) { LC40size += 1; } } else { MessageBox.Show("exiting for loop. numcells: " + numCells); } } double[] freqLC40 = new double[LC40size]; double[] ampMaxLC40 = new double[LC40size]; double[] freqMOC = new double[MOCsize]; double[] ampMaxMOC = new double[MOCsize]; double[] freqUCS1 = new double[UCS1size]; double[] ampMaxUCS1 = new double[UCS1size]; double[] freqUCS2 = new double[UCS2size]; double[] ampMaxUCS2 = new double[UCS2size]; double[] freqAM = new double[AMsize]; double[] ampMaxAM = new double[AMsize]; int LC40idx = 0; int MOCidx = 0; int UCS1idx = 0; int UCS2idx = 0; int AMsidx = 0; for (i = 14; i < (numCells); i += 14) { if (i < numCells) { if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.464258839) { freqUCS1[UCS1idx] = Convert.ToDouble(dataGridView1.SelectedCells[i].Value.ToString()); ampMaxUCS1[UCS1idx] = Convert.ToDouble(dataGridView1.SelectedCells[i + 9].Value.ToString()); UCS1idx += 1; } else if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.42859146) { freqMOC[MOCidx] = Convert.ToDouble(dataGridView1.SelectedCells[i].Value.ToString()); ampMaxMOC[MOCidx] = Convert.ToDouble(dataGridView1.SelectedCells[i + 9].Value.ToString()); MOCidx += 1; } else if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.490616471) { freqAM[AMsidx] = Convert.ToDouble(dataGridView1.SelectedCells[i].Value.ToString()); ampMaxAM[AMsidx] = Convert.ToDouble(dataGridView1.SelectedCells[i + 9].Value.ToString()); AMsidx += 1; } else if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.525409911) { freqUCS2[UCS2idx] = Convert.ToDouble(dataGridView1.SelectedCells[i].Value.ToString()); ampMaxUCS2[UCS2idx] = Convert.ToDouble(dataGridView1.SelectedCells[i + 9].Value.ToString()); UCS2idx += 1; } else if (Convert.ToDouble(dataGridView1.SelectedCells[i + 11].Value.ToString()) == 28.560529988) { freqLC40[LC40idx] = Convert.ToDouble(dataGridView1.SelectedCells[i].Value.ToString()); ampMaxLC40[LC40idx] = Convert.ToDouble(dataGridView1.SelectedCells[i + 9].Value.ToString()); LC40idx += 1; } } else { MessageBox.Show("exiting for loop. numcells: " + numCells); } } //get XY form LC40 xyForm = new XYplotForm(); xyForm.Plot(freqLC40, ampMaxLC40, "LC-40 Max Amplitude"); xyForm.Show();
Maciej Los
Вы должны быть более конкретны и предоставить более подробную информацию о вашем ожидаемом результате!
Philippe Mori
Научитесь писать надежный код...
В этом коде так много плохих вещей, которые сделают его недостижимым. Вы должны избегать жестко закодированных значений и повторяющегося кода, среди прочего.
FreddyPR
Ну, вот почему я пишу. Мне нужен конструктивный совет. Я не программист по профессии, если бы я знал лучше, мне не нужно было бы спрашивать.