Por que está acontecendo este erro?!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Por que está acontecendo este erro?!
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 😄