es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo encontrar y eliminar duplicados en una entrada de usuario en c#

Estoy tratando de encontrar duplicados de las entradas de usuario. Estoy tratando de agregar clientes con su nombre, apellido y número de teléfono. Si toda la información ya existe, quiero mostrar un mensaje apropiado diciendo {nombre}, {apellido} y {númerodetelefono} ya existen. ¿Alguna idea de cómo hacerlo?

//este código está en la clase Functions.
public bool addCustomer(params)
{
if (numCustomer < maxCustomer)
{
Random rnd = new Random();
int id = rnd.Next(10000, 99999);
clist[numCustomer] = new Customer(params);
numCustomer++;
return true;
}
return false;
}

//Clase Menu para solicitar al usuario que elija una opción
switch (input)
{
case 1: // Agregar cliente
Console.Clear();
string fName;
string lName;
long phone;
Console.WriteLine(“Agregando nuevo cliente…\nPor favor ingrese lo siguiente:”);
Console.Write(“Primer Nombre: “);
fName = Console.ReadLine();
Console.Write(“Apellido: “);
lName = Console.ReadLine();
Console.Write(“Número de Teléfono (sin guiones ni espacios): “);
phone = Convert.ToInt64(Console.ReadLine());
m.addCustomer(fName, lName, phone);
Console.WriteLine(“\nPulse cualquier tecla para volver al Menú de Clientes…”);
Console.ReadKey();
customerMenu();
break;

}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para encontrar duplicados en la función ‘addCustomer’, puedes verificar si los parámetros de entrada coinciden con algún cliente existente en la lista de clientes. Puedes hacer esto iterando a través de la lista de clientes y verificando el nombre, apellido y número de teléfono de cada cliente en comparación con los parámetros de entrada.

    Si encuentras una coincidencia, puedes lanzar un mensaje apropiado indicando que el cliente ya existe. Así es como se vería la función ‘addCustomer’ actualizada:

    public bool addCustomer(string firstName, string lastName, long phoneNumber)
    {
        // verificar duplicados
        foreach (Customer c in clist)
        {
            if (c != null && c.FirstName == firstName && c.LastName == lastName && c.PhoneNumber == phoneNumber)
            {
                Console.WriteLine("Ya existe {0}, {1} y {2}.", firstName, lastName, phoneNumber);
                return false;
            }
        }
    
        // agregar nuevo cliente
        if (numCustomer < maxCustomer)
        {
            Random rnd = new Random();
            int id = rnd.Next(10000, 99999);
            clist[numCustomer] = new Customer(firstName, lastName, phoneNumber);
            numCustomer++;
            return true;
        }
        return false;
    }
    

    Alternativamente, también puedes usar LINQ para lograr el mismo resultado. Así es como puedes modificar el código usando LINQ:

    public bool addCustomer(string firstName, string lastName, long phoneNumber)
    {
        // verificar duplicados
        if (clist.Any(c => c != null && c.FirstName == firstName && c.LastName == lastName && c.PhoneNumber == phoneNumber))
        {
            Console.WriteLine("Ya existe {0}, {1} y {2}.", firstName, lastName, phoneNumber);
            return false;
        }
    
        // agregar nuevo cliente
        if (numCustomer < maxCustomer)
        {
            Random rnd = new Random();
            int id = rnd.Next(10000, 99999);
            clist[numCustomer] = new Customer(firstName, lastName, phoneNumber);
            numCustomer++;
            return true;
        }
        return false;
    }
    

    En ambos casos, debes llamar a la función ‘addCustomer’ desde la clase ‘Menu’ cuando el usuario elija agregar un cliente.

Comments are closed.