Есть ли в. NET тип неупорядоченной коллекции, которая может быстро добавлять и удалять объекты? - PullRequest
0 голосов
/ 12 июля 2020

Итак, у меня есть специальный класс, который может удалять себя из коллекции, допустим, это выглядит примерно так:

public class FunTimes{
    public ICollection<FunTimes> Collection {get;set;}
    protected void RemoveFromCollection(){
        Collection.Remove(this);
    }
}

RemoveFromCollection() будет вызываться из события. Я хочу, чтобы коллекция быстро добавляла и удаляла элементы, и, поскольку позиция в моем случае не имеет значения, я планировал использовать что-то другое, кроме List<T>. Я действительно не могу использовать ConcurrentBag<T>, так как мне нужно перебирать каждый элемент, чтобы удалить элемент. Я наконец решил использовать Dictionary<FunTimes, FunTimes>, а затем использовать каждый экземпляр FunTimes как ключ И значение. Я спрашиваю, есть ли лучшее решение, потому что использование объекта в качестве ключа и значения в Словаре кажется просто странным. Есть предложения?

1 Ответ

3 голосов
/ 12 июля 2020

Если Dictionary<FunTimes, FunTimes> удовлетворяет ваши потребности, лучшим вариантом будет использование HashSet<T>, в котором должно быть добавление и удаление O (1) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...