none
Ayuda Con List RRS feed

  • Pregunta

  • Hola Chicos Nuevamente, se que el problema que les voy a plantear no es de gran complejidad. pero ya estube tanto tiempo con lo mismo que me trabe y no se me ocurre ninguna solucion factible.

    Problema:
    Lo que quiero hacer es lo siguente, El Usuario va a ingresar X Cantidad de Numeros, los vamos a meter en una lista(los numero no van a ser aleatorios, estos van a depender de la cantida de controles que tenga un COntenedor, Ej: el Panel tiene 4 Controls, el Usuario tiene que ingresar del 0 al 4, PUEDE REPETIR), entonces tenemos que empezar a comparar los items de la lista para saber cual se repitr, y cuando uno se repita guardamos ese que se repite, y despues tendriamos que volver a recorrer la lista para saber que item quedo vacio y poder colocar ese, esto nos serviria para que ningun item quede repetido.

    Espero que se entienda. Cualquier cosa pregunten

    Saludos
    lunes, 19 de enero de 2009 15:10

Todas las respuestas

  • No está muy claro el planteamiento jejeje, ya que si solo guardamos los datos CUANDO SE REPITEN... si no hemos guardado nada aún nunca guardaremos el dato introducido... no obstante quizá esto te sirva...

     

    Code Snippet

    private int numaintroducir = 0;

    private List<int> listapulsaciones = new List<int>();

    private List<int> listaguardados = new List<int>();

    public void Run()

    {

    Insercion(1);

    Insercion(2);

    Insercion(3);

    Insercion(1);

    Insercion(3);

    }

    public void Insercion(int numero)

    {

    numaintroducir = numero;

    //Buscamos si el usuario ya introdujo el numero

    if (listapulsaciones.Exists(FindNum))

    {

    //Si ya lo habia introducio (es repetido) lo agregamos a la lista de guardados si no existe ya 

    if (!listaguardados.Exists(FindNum))

    listaguardados.Add(numero);

    }

    else

    {

    //Si no lo introdujo lo agregamos a la lista de datos introducidos.

    listapulsaciones.Add(numero);

    }

    }

    //Predicado para la búsqueda

    private bool FindNum(int numero)

    {

    if (numero == numaintroducir)

    {

    return true;

    }

    else

    {

    return false;

    }

    }

     

     

    Si lo que quieres es localizar la posición de un elemento dentro de la lista lo puedes hacer así

     

    Code Snippet

    private void LocalizarElemento(int numeroalocalizar)

    {

    int pos = 0; //Posición del elemento

    numaintroducir = numaintroducir;

    pos = listaguardados.Find(FindNum); //retorna la posición del elemento

    }

     

     

    Esta función complementa la el trozo de arriba.

     

    Como bien te digo no entendí del todo lo que necesitas pero esto te muestra como manejar las listas.

     

    Un saludo

     

     

    martes, 20 de enero de 2009 12:29