Реализация gethashcode () для объектов, которые содержат коллекции ⇐ C#

Место общения программистов C#
Anonymous
Реализация gethashcode () для объектов, которые содержат коллекции

Сообщение Anonymous »

Рассмотрим следующие объекты: < /p>

Код: Выделить всё

class Route
{
public int Origin { get; set; }
public int Destination { get; set; }
}
< /code>

маршрут реализует операторы равенства. < /p>

class Routing
{
public List Paths { get; set; }
}
< /code>

Я использовал приведенный ниже код для реализации метода Gethashcode для объекта маршрутизации, и он, кажется, работает, но мне интересно, правильно ли это сделать? Я полагаюсь на проверки равенства, и, как я не уверен, я думал, что спрошу вас, ребята. Могу ли я просто суммировать хэш -коды или мне нужно сделать больше магии, чтобы гарантировать желаемый эффект? < /P>

public override int GetHashCode() =>
{
return (Paths != null
? (Paths.Select(p => p.GetHashCode())
.Sum())
: 0);
}
Я проверил несколько вопросов gethashcode () здесь, а также статью MSDN и Эрика Липперта по этой теме, но не смог найти то, что я ищу.

Подробнее здесь: https://stackoverflow.com/questions/105 ... ollections

Вернуться в «C#»