Получение дублированных записей интерфейсов в словаре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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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