Почему важно переопределить GetHashCode, если переопределен метод Equals?

Учитывая следующий класс

public class Foo
{
    public int FooId { get; set; }
    public string FooName { get; set; }

    public override bool Equals(object obj)
    {
        Foo fooItem = obj as Foo;

        return fooItem.FooId == this.FooId;
    }

    public override int GetHashCode()
    {
        // Which is preferred?

        return base.GetHashCode();

        //return this.FooId.GetHashCode();
    }
}

Я переопределилEquals метод, потому чтоFoo представлять строку дляFooс таблицей. Какой метод является предпочтительным для переопределенияGetHashCode?

Почему важно переопределитьGetHashCode?

Ответы на вопрос(6)

Ваш ответ на вопрос