如何在列表的第一个位置添加元素?

210

我有一个List<T>,我想将一个项目添加到该列表的第一个位置。
MyList.add() 将项目添加为最后一个。如何将其添加为第一个?

谢谢帮助!

7个回答

438
List<T>.Insert(0, item);

95
 myList.Insert(0, item);

这确实涉及将列表的所有内容内部移动,因此如果您经常这样做(即仅添加到前面),您可能会考虑使用Stack<T>或正向读取并在某个合适的时机反转的常规列表。

我会尽量避免使用LinkedList。


30

使用 List.Insert(0, ...)。但你确定不是更适合使用 LinkedList 吗?每次在数组中除了最后位置插入一个项目,都需要复制所有现有项目以为新项目腾出空间。


19
使用 List<T>.Insert(0, item) 或者 LinkedList<T>.AddFirst()

12

你可以通过在位置0插入来实现这个:

List myList = new List();
myList.Insert(0, "test");

11
使用Insert方法: list.Insert(0, item);

9

当然,InsertAddFirst(对于一个 LinkedList)可以解决问题,但你也可以使用以下代码:

myList.Reverse();
myList.Add(item);
myList.Reverse();

注意,虽然这样做最终能够实现目标,但并不是最有效的方法;)。


6
List<T> 没有 AddFirst 方法。 - Martin Buberl
17
让我澄清一下 - 这不是一个认真的回答,只是一个尴尬的极客笑话尝试。 - SWeko
@Reinhard - 再次强调,这不是一个认真的回答,只是一个极为无聊的极客笑话。 - SWeko
@Reinhard也许不会,因为在两种情况下都重新制作了列表。 - Emy Blacksmith
那么...经过这么长时间...你拿到MVP了吗? - Ergis
这个应该被删除。 - Jim Balter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接