The operator "==" can not be applied to operators of type "string" and "long"

0

Hello, good evening. I am doing a job for college in C # and I do not have much experience. I was running the program and the error described in the title appeared. The piece of code is this:

public Produto BuscarProdutoPorCodigo(long codigoProduto)
    {
        return this.Produtos
                   .Where(produto => produto.Id == codigoProduto)
                   .FirstOrDefault();
    }

    public void RemoverProdutoPorCodigo(long codigoProduto)
    {
        this.Produtos.Remove(this.Produtos
                   .Where(produto => produto.Id == codigoProduto)
                   .FirstOrDefault());
        Salvar();
    }

I've tried converting to "Int32", etc., but it did not work. Can someone help me? Thank you.

    
asked by anonymous 14.06.2018 / 22:23

1 answer

2

This happens because the Id property of the product is string and the parameter passed codigoProduto is long and you can not compare a number with a text.

In this situation, you can pass a string as a parameter, since the Id of the product will always be a string:

public Produto BuscarProdutoPorCodigo(string codigoProduto)
{
    return this.Produtos
               .Where(produto => produto.Id == codigoProduto)
               .FirstOrDefault();
}

Recommended reading: Types and Variables

    
14.06.2018 / 22:34