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 validar para evitar repeticiones de nombres en una lista existente en C#

  1. Este es el código:
private List<model1> _projectVariables { get; set; } = new List<model1>();

public void AddProject(Model1 project) // quiero realizar la validación
{
    if (!_projectVariables.Contains(project)) // este método agrega la entrada del usuario a la lista si no está repetida
    {
        _projectVariables.Add(project);
    }
}
  1. ¿Qué debo escribir en el código anterior para que no se permita la repetición de datos en la lista? ¿Qué debo hacer?
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para evitar la repetición de datos en la lista, puedes realizar una validación antes de añadir el proyecto a la lista. Una forma de hacer esto es comprobando si la lista ya contiene un proyecto con los mismos datos que el que se está añadiendo.

    Para implementar esta validación, puedes modificar el método AddProject de la siguiente manera:

    public void AddProject(Model1 project)
    {
        // Comprobar si ya existe un proyecto con los mismos datos en la lista
        if (_projectVariables.Any(p => p.Data == project.Data))
        {
            throw new Exception("Ya existe un proyecto con los mismos datos.");
            // O puedes elegir manejar este escenario de una forma diferente
        }
    
        _projectVariables.Add(project);
    }
    

    En este ejemplo, estamos utilizando el método Any() de LINQ para comprobar si hay algún proyecto en la lista que tenga el mismo valor en la propiedad Data que el proyecto que se está añadiendo. Si existe dicho proyecto, se lanza una excepción. De lo contrario, se añade el proyecto a la lista.

    Puedes personalizar la lógica de validación según tus requisitos específicos. Por ejemplo, puedes comprobar la unicidad basada en múltiples propiedades, o puedes utilizar otros métodos como Contains() o IndexOf() en lugar de Any().

Comments are closed.