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

Asked

Viewed 789 times

1

Hey, good night, man. I’m doing a job for the college in C# and I don’t have much experience. I went to run the program and the error described in the title appeared. The piece of the 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 have tried to convert to "Int32", etc, but it did not work. Can anyone help me? Thank you.

  • Product.Id is which type?

1 answer

2

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

In this situation, you can pass as parameter a string, since the Id 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

  • 1

    My God, I swore I put string on it too. Now it worked. Thank you!

  • For nothing, access the [Tour] and welcome to the community.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.