Итак, у меня есть специальный класс, который может удалять себя из коллекции, допустим, это выглядит примерно так:
public class FunTimes{
public ICollection<FunTimes> Collection {get;set;}
protected void RemoveFromCollection(){
Collection.Remove(this);
}
}
RemoveFromCollection()
будет вызываться из события. Я хочу, чтобы коллекция быстро добавляла и удаляла элементы, и, поскольку позиция в моем случае не имеет значения, я планировал использовать что-то другое, кроме List<T>
. Я действительно не могу использовать ConcurrentBag<T>
, так как мне нужно перебирать каждый элемент, чтобы удалить элемент. Я наконец решил использовать Dictionary<FunTimes, FunTimes>
, а затем использовать каждый экземпляр FunTimes
как ключ И значение. Я спрашиваю, есть ли лучшее решение, потому что использование объекта в качестве ключа и значения в Словаре кажется просто странным. Есть предложения?