1
resposta

Erro na variavel "results" Não é possivel converter...

Por que está acontecendo este erro?!![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

1 resposta

Bom dia Mickael, tudo blz camarada?

Seu arquivo completo está assim?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;

namespace CursoWindowsFormsBiblioteca.Classes
{
    public class Cliente
    {
        public class Unit
        {
            [Required(ErrorMessage = "Código do Cliente é obrigatório.")]
            public string Id { get; set; }        

            public string Nome { get; set; }
            public string NomePai { get; set; }
            public string NomeMae { get; set; }
            public bool TemPai { get; set; }
            public string Cpf { get; set; }
            public int Genero { get; set; }
            public string Cep { get; set; }
            public string Logradouro { get; set; }
            public string Complemento { get; set; }
            public string Bairro { get; set; }
            public string Cidade { get; set; }
            public string Estado { get; set; }
            public string Telefone { get; set; }
            public string Profissao { get; set; }
            public Double RendaFamiliar { get; set; }

            public void ValidaClasse()
            {
                ValidationContext context = new ValidationContext(this, serviceProvider: null, items: null);
                List<ValidationResult> results = new List<ValidationResult>();
                bool isValid = Validator.TryValidateObject(this, context, results, true);

                if (isValid == false)
                {
                    StringBuilder sbrErrors = new StringBuilder();
                    foreach (var validationResult in results)
                    {
                        sbrErrors.AppendLine(validationResult.ErrorMessage);
                    }
                    throw new ValidationException(sbrErrors.ToString());
                }
            }



        }
        public class List<T>
        {
            public List<Unit> ListUnit { get; set; }
        }
    }
}

Sua classe List está parametrizada com genérics? acredito que seja isso, pois a mensagem vc tenta fazer a conversão para otipo desta classe definida no arquivo.


Gravidade    Código    Descrição    Projeto    Arquivo    Linha    Estado de Supressão
Erro    CS1579    A instrução foreach não pode operar em variáveis do tipo 'Cliente.List<ValidationResult>' porque 'Cliente.List<ValidationResult>' não contém uma definição da extensão ou instância pública para 'GetEnumerator'    CursoWindowsFormsBiblioteca    C:\Users\andre\OneDrive\Desktop\windows-forms-parte-4-projeto-completo-aula-3\CursoWindowsFormsBiblioteca\Classes\Cliente.cs    42    Ativo

Altere na sua classe List para :

 public class List
        {
            public List<Unit> ListUnit { get; set; }
        }

Ai a referência vai ser o lista da classe using System.Collections.Generic;.

Espero que tenha ajudado e, qualquer coisa, estamos à disposição!

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!