Please help me with the task: Fix Noname's module

Hello, I’m working on this task:

Write a program that first creates an int array, with a size of 10, and reads the number of commands from the user. After that, the program should read every command that the user inputs. Commands are represented by one string and could be of 2 types: add1 index or add0 index. These commands should change the corresponding array cell to 1 or 0. Forexample, the command add1 3 puts 1 to the array cell with an index of 3. After all the commands from the user are executed, print the array to the screen. Use methods PutOneAtIndex and PutZeroAtIndex for command execution. Example:
>4
>add1 1
>add0 1
>add1 9
>add1 5
0 0 0 0 0 1 0 0 0 1
/*Tip: To convert one char from string to int, use int.Parse(myString[index].ToString()) */

Here is my code:


namespace ParametersToMethods
{
   class FillTheArrayNow
   {
       static void Main()
       {
           var myArray = new int[10]; //0000000000
           var commandsCount = int.Parse(Console.ReadLine());// 4
           int index = 0;
           for (int k= 0; k< commandsCount; k++) // READING users commands 
           {
               string myString = Console.ReadLine();
               int.Parse(myString[index].ToString());
               if (myString == ($"add1 {index}"))
                   PutOneAtIndex(myArray, index);
               if (myString == ($"add2 {index}"))
                   PutZeroAtIndex(myArray, index);
           }
           // Write your code here
           for (int i = 0; i < myArray.Length; i++) // WRITING the array with numbers
           {
               Console.Write(myArray[i]);
               if (i != myArray.Length - 1)
                   Console.Write(" ");
           }
       }
       
       static void PutOneAtIndex(int[] theArray, int index)
       {
           for (int i = 0; i < theArray.Length; i++)
           {
               if (i == index)
                   theArray[i] = 1;
           }// Write 1 to the array cell with index index
       }

       static void PutZeroAtIndex(int[] theArray, int index)
       {
           for (int i = 0; i < theArray.Length; i++)
           {
               if (i == index)
                   theArray[i] = 0;
           }// Write 0 to the array cell with index index
       }
   }
}

Can anyone please help me to solve it?

Частина 1
Дивіться, метод int.Parse() повертає значення.
наприклад в

var commandsCount = int.Parse(Console.ReadLine());

значення яке ми “запарсимо” буде зберігатись в змінній commandsCount.

А на цій стрічці, щось явно не те:

int.Parse(myString[index].ToString());

Ми “парсимо” значення, але ніде його не зберігаємо.

Частина 2
Строка (string) це масив символів, а тому можна читати з неї значення за допомогою індексу.
Але в вашому рішенні,

int index = 0;
..
string myString = Console.ReadLine();
int.Parse(myString[index].ToString()); // did you forget to assign this to some value?

myString виглядає як “add1 7”, тобто myString[index] це те саме що myString[0] і це БУКВА “a”.
Саме через це, система видає “FormatException”, адже буква “а” не є цифрою.
На якій позиції у нас знаходиться цифра, яка вказує що треба змінити?

Частина 3
В умові задачі, у нас команди можуть бути “add1” або “add0”. А у вас?)

Віктор, дякую за всі пояснення, дуже допомогли! Тільки одна деталька - Частина 3
В умові задачі, у нас команди можуть бути “add1” або “add0” Не зовсім так. Там умова буде “add1 {index}” або “add0 {index}”

Ви абсолютно праві!

але ж в вашому рішенні у вас перевірка на команду що починається з add2 :wink:

if (myString == ($"add1 {index}"))
    PutOneAtIndex(myArray, index);
if (myString == ($"add2 {index}"))
    PutZeroAtIndex(myArray, index);

Зрозуміла!) Буду більш уважною наступного разу, дякую :wink: