我想知道是否有一个构建方法来删除并返回列表的第一项与一个方法/命令.
我用过这个,不太漂亮
Item currentItem = items.First(); items.RemoveAt(0);
所以我可以写一个扩展方法:
public static class ListExtensions { public static T RemoveAndReturnFirst(this List list) { T currentFirst = list.First(); list.RemoveAt(0); return currentFirst; } } //Example code Item currentItem = items.RemoveAndReturnFirst();
这是最好的可能性还是有任何内置方法?
该列表是从nHibernate-Query返回的,因此它应该保持为a List
.
最适合此操作的集合是Queue:
var queue = new Queue(); queue.Enqueue(10); //add first queue.Enqueue(20); //add to the end var first = queue.Dequeue(); //removes first and returns it (10)
队列制作Enqueue
和Dequeue
操作非常快.但是,如果你需要在队列内搜索,或者按索引获取项目 - 这是不好的选择.比较,您有多少种不同类型的操作,并根据此选择最合适的集合 - 队列,堆栈,列表或简单数组.
您还可以创建Queue
一个List
:
var list = new List(); var queue = new Queue (list);