Есть ли способ или способ в C # для добавления элементов в список <T>на основе LIFO? - PullRequest
1 голос
/ 21 апреля 2011

это легко. У меня есть List<T> в C #, и я хотел бы добавить некоторые элементы на основе LIFO, так что в нижней части List<T>. По нескольким причинам я не могу использовать класс Stack .

Спасибо

Francesco

Ответы [ 5 ]

6 голосов
/ 21 апреля 2011

Да, метод Add() добавляет в конец списка, вы можете использовать RemoveAt(yourList.Count - 1) для удаления последнего и yourList[yourList.Count - 1] для просмотра последнего.

Хотя мне любопытно, почемувы не можете использовать класс Stack ()?

5 голосов
/ 21 апреля 2011

Элементы, добавленные к List<T> с использованием метода Add, помещаются в конец списка.Если вы хотите обработать список так, чтобы он представлял собой LIFO, либо выполните итерацию в обратном порядке (то есть вы измените способ обработки списка), либо всегда используете Insert(0, item) для добавления элементов в список (то есть вы изменяетекак вы заполняете список).

1 голос
/ 21 апреля 2011

LIFO и FIFO - это не вопрос добавления , а вопрос удаления .

Вы можете использовать List<T> и всегда брать последний элемент:

List<int> list = Enumerable.Range(1,100).ToList();
While(list.Count>0)
{
    list.RemoveAt(list.Count-1);
}
1 голос
/ 21 апреля 2011
Insert(0,T)

http://msdn.microsoft.com/en-us/library/sey5k5z4.aspx

Это не стек, хотя. Если вы хотите снова удалять объекты по мере их использования, я бы рассмотрел расширение стека ...

1 голос
/ 21 апреля 2011

Вы можете вставить в любом месте в списке вы хотите.

http://msdn.microsoft.com/en-us/library/sey5k5z4.aspx

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