Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Falha ao executar

ao executar o programa com o código abaixo. Gero um erro que está descrito no final do tópico.

namespace Alura.LeilaoOnline.Core { public class Leilao { private IList _lances; public IEnumerable Lances => _lances; public string Peca { get; } public Lance Ganhador { get; private set; }

    public Leilao(string peca)
    {
        Peca = peca;
        _lances = new List<Lance>();
    }

    public void RecebeLance(Interessada cliente, double valor)
    {
        _lances.Add(new Lance(cliente, valor));
    }

    public void IniciaPregao()
    {

    }

    public void TerminaPregao()
    {
        Ganhador = Lances
            .OrderBy(1 =>1.Valor)
            .Last();


    }
}

}

no final do código no TerminPregao(), no trecho " .OrderBy(1, 1.Valor)" o que está entre parenteses fica sublinhado em vermelho e apresenta a seguinte mensagem de erro: "Error CS1061 'int' does not contain a definition for 'Valor' and no accessible extension method 'Valor' accepting a first argument of type 'int' could be found (are you missing a using directive or an assembly reference?)"

Como resolver?

2 respostas
solução!

Olá Allan!

Segue o seu código:

public void TerminaPregao()
    {
        Ganhador = Lances
            .OrderBy(1 =>1.Valor)
            .Last();
}

Esse erro está dizendo que o seu .OrderBy() está recebendo um valor inteiro. Ou seja, você colocou o 1 (um) ao invés de colocar o L. Acredito que é só alterar para .OrderBy(l => l.Valor) que tudo se resolve.

Espero ter ajudado!

Obrigado! Resolvido com sucesso. Troquei o "1" pelo "l".

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software