2010-06-08 2 views
1

У меня есть список из 5 элементов ... Что я хочу переместить все элементы, удалив последний и добавив новое значение к первому. Есть ли какие-либо готовые методы списка, которые это делают или помогают мне? Как QueueQueue В C# Ilist

+0

Важно ли, чтобы вы добавили на передний план и удалили из задней части коллекции? –

ответ

5

Вы можете использовать Queue<T>

Edit: Ваша формулировка может быть интерпретирована несколько различных способов, но если вы хотите первый в первом из поведения затем использовать Queue<T>. Если вы хотите, чтобы в последнем из предыдущих вариантов поведения использовался Stack<T>.

+1

Имейте в виду, что класс Queue делает это, но в противоположность установленному порядку OP. Это лишь частично верный ответ. –

1

Вы можете использовать класс Queue. Он должен предоставить все необходимые вам методы.

1

Да Queue<T>

+0

Хех: ответил 43 сек назад Brian R. Bondy ответил 16 сек назад транжира ответил 4 сек назад ЛУКА ответил 0 сек назад Cory Чарльтона Брайан выигрывает ;-) –

2

Вы можете использовать Queue<T>, как предложено много раз. Однако имейте в виду, что Queue добавит элементы в конец и удалит с фронта, что вы указали противоположное поведение. Если вы используете эту коллекцию как IEnumerable<T> и перечисляете ее, то Queue<T> будет назад от ваших спецификаций.

Существует два способа легко обойти это. Вы можете повторять очередь в обратном порядке, если вы рассматриваете это как перечислимое с помощью Enumerable.Reverse().

В качестве альтернативы вы можете использовать LinkedList<T>. Это позволяет вставлять и удалять как начало, так и конец коллекции. Это позволит вам сохранить указанный вами заказ.

Если заказ не имеет значения, и вам просто нужна очередь общего назначения, то Queue<T> определенно является лучшим выбором.

+0

Я думаю, что он описывал очереди просто с немного странной формулировкой. –

+0

@Brian: Не уверен. Он определенно указал добавление спереди и удалил из «спины», что является противоположностью реализации Queue . Это может быть или не иметь значения (я попытался прояснить это в своем ответе), но если это произойдет, очередь будет неправильной. –

+0

@Brian: Я задаю вопрос, потому что он использовал очередь слов, поэтому я предполагаю, что OP знает о очередях. :) –