Получение дублированных записей интерфейсов в словареC#

Место общения программистов C#
Anonymous
Получение дублированных записей интерфейсов в словаре

Сообщение Anonymous »

У меня есть интерфейс с именем IResource, который состоит из 5 свойств, доступных только для чтения. Поскольку я добавляю их в Dictionary, мне нужен способ сравнить два значения IResource, чтобы в словаре не было дубликатов.
Можно ли мне добавить Equals(object obj) по умолчанию к каждому IResource?
Я уже добавил Equals переопределить класс Wood, и это решило проблему, но мне пришлось бы добавить Equals(object obj) в каждый класс, реализующий IResource.

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

public class Wood : IResource
{
public string Package => "Core";

public string Family => "Wood";

public string Name => "Wood";

public bool IsFractal => false;

public ResourceType Type => ResourceType.Natural;
}
PS: у меня есть переопределение метода Add(IResource key, uint value) в словаре, чтобы проверить, существует ли IResource.

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

    public new void Add(IResource key, uint value)
{
if (base.ContainsKey(key))
base[key] += value;
else
base.Add(key, value);
}
Сейчас, когда я добавляю интерфейс IResource в словарь, он всегда добавляет новую запись.

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

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