Эффективная коллекция для вставок и удалений в начале - PullRequest
3 голосов
/ 05 июня 2011

Какую коллекцию вы бы порекомендовали для кода, который часто вставляет и удаляет объекты только в начале коллекции.

Вот код, иллюстрирующий мои требования

while (collection.Count != 0)
{
   object obj = collection[0];
   collection.RemoveAt(0);

   ...

   if (somethingWith(obj))
       collection.Insert(0, anotherObj);

   ...  
}

Нет вставок или удалений в позициях, отличных от 0. Сбор не отсортирован.

Что бы вы порекомендовали?

РЕДАКТИРОВАТЬ:

Мне не нужно делать что-то необычное с коллекцией. Коллекция используется для помещения в очередь объектов, которые должны быть обработаны (и коллекция заполняется во время обработки).

1 Ответ

8 голосов
/ 05 июня 2011

Кажется, вы хотите реализовать только контейнер LIFO , поэтому вы можете использовать Stack<T>:

while (stack.Count > 0) {
    object obj = stack.Pop();
    // ...
    if (SomethingWith(obj)) {
        stack.Push(anotherObj);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...