Accept only 0,1,2 in an array c #

0

How to accept entering only numbers 0,1,2 in an array of c #

        int elements;
        int[] values;
        Console.Write("Número de elementos: ");
        elements = Convert.ToInt32(Console.ReadLine()); //Pide el número de elementos

            values = new int[elements]; //Inicializa el arreglo con los elementos indicados
            Console.Clear();
            Console.Write("Ingreso de datos: \n");

        for (int counter = 0; counter < elements; counter++)
        {
            Console.WriteLine("Elemento {0}: ", counter + 1); //Pide los valores de cada elemento
            values[counter] = Convert.ToInt32(Console.ReadLine());

        }
    
asked by Luis Estrada 04.12.2018 в 23:48
source

1 answer

1

You could just validate it, something like this

int counter = 0;

while(counter < elements)
{
    Console.WriteLine("Elemento {0}: ", counter + 1);
    string temp = Console.ReadLine();

    int valor = 0;
    if(!int.TryParse(temp, out valor)){
        Console.WriteLine("El valor no es numerico.");
        continue;
    }

    List<int> opciones = new List<int>() {0, 1, 2};
    if(!opciones.Contains(valor))
    {
        Console.WriteLine("No es un valor permitido.");
        continue;
    }

    values[counter] = valor;
    counter++;

}

of this form if the value entered does not comply with the validation you inform it and use the continue to request again, enter it

    
answered by 05.12.2018 в 00:45