Не получается отразить данные в char1

У меня есть массив с данными lines:

7.12.2023
345
8.12.2023
435 
9.12.2023
456
10.12.2023
567
11.12.2023
387
12.12.2023
402
13.12.2023
623
14.12.2023
567
15.12.2023
213

Так же у меня есть переменная pik равная, допустим, 127. Я хочу отобразить переменную pik используя даты из массива lines.

for (int o=0;o<lines.Length-1; o+=2) // запускаю цикл от 0 до 17 с шагом 2
{
        int n = lines.Length-1; // переменная с кол-вом строк 
        string[] strArr = Enumerable.Repeat(pik, n).ToArray(); // массив для отображения по Y
        chart1.Series[1].Points.AddXY(lines[o], strArr[o]); // отображение на графике
}

По итогу, при попытке вывода, указывается ошибка в последней строке(индекс находиться вне границ массива). Почему так получается? Массивы одинаковы по количеству строк, данные в массиве нормально отображаются, я это проверял в отладке. Полный код программы:

 public void button_Click(object sender, EventArgs e)
{
int height1 = Convert.ToInt32(height.Text);
Baza bz = new Baza();
using (var connection = bz.getConnection())
{
    MySqlCommand command = new MySqlCommand("SELECT pik FROM dt WHERE height=@hei", connection);
    command.Parameters.AddWithValue("@hei", height1);
    connection.Open();
    string pik = Convert.ToString(command.ExecuteScalar());
    if (pik == null)
    {
        MessageBox.Show("Нет данных в базе");
    }
    string[] lines = File.ReadAllLines(fail); // массив берет данные из файла, который был загружен пользователем в другой части кода 
    if (lines == null)
    {
        MessageBox.Show("Нет данных на графике");
    }
    for (int o = 0; o < lines.Length - 1; o += 2)
    {
        chart1.Series[1].Points.AddXY(lines[o], pik);
    }

Ответы (2 шт):

Автор решения: aepot

Массивы одинаковы по количеству строк - да нет же! lines.Length-1 это не количество строк, а количество строк минус 1. int n = lines.Length;. У вас просто опечатка в коде.

И вынесите создание массива из цикла, а то у вас получается создается lines.Length / 2 одинаковых массивов.

Да и вообще, зачем второй массив? Выбросить его можно.

for (int o = 0; o < lines.Length - 1; o += 2)
{
    chart1.Series[1].Points.AddXY(lines[o], pik);
}

Всё.

→ Ссылка
Автор решения: Nikolaus

Надо было, просто, вместо 1 написать 0:

chart1.Series[0].Points.AddXY(lines[o], pik);
→ Ссылка