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

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

Сообщение Anonymous »

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

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

class Route
{
public int Origin { get; set; }
public int Destination { get; set; }
}
< /code>
маршрут реализует операторы равенства.class Routing
{
public List Paths { get; set; }
}
< /code>
Я использовал код ниже, чтобы реализовать метод Gethashcode для объекта маршрутизации, и он, кажется, работает, но мне интересно, правильный ли это способ сделать это? Я полагаюсь на проверки равенства, и, как я не уверен, я думал, что спрошу вас, ребята. Могу ли я просто суммировать хэш-коды или мне нужно сделать больше магии, чтобы гарантировать желаемый эффект?public override int GetHashCode()
{
return (Paths != null
? Paths.Select(p => p.GetHashCode()).Sum()
: 0);
}
Я проверил несколько вопросов gethashcode () здесь, а также статью MSDN и Эрика Липперта на эту тему, но не смог найти то, что я ищу.


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

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