我在C#中有一个字符串数组,我想从数组中弹出顶部元素(即删除第一个元素,然后将所有其他元素向上移动一个).在C#中有一种简单的方法吗?我找不到Array.Pop方法.
我需要使用像ArrayList这样的东西吗?我的数组中项目的顺序很重要.
使用列表,队列或堆栈代替..
ListQueue Stack
Queue
(先进先出)或Stack
(进去,先出)是你所追求的.
.NET中的数组是固定长度的 - 您无法从中删除元素或者确实向它们添加元素.您可以使用List
but 执行此操作,Queue
并且Stack
在需要队列/堆栈语义时更合适.
来自MSDN:
using System; using System.Collections.Generic; namespace ConsoleApplication1 { class MSDNSample { static void Main() { string input = "a b c d"; StackmyStack = new Stack ( input.Split(new string[] { " " }, StringSplitOptions.None)); // Remove the top element (will be d!) myStack.Pop(); Queue myQueue = new Queue ( input.Split(new string[] { " " }, StringSplitOptions.None)); // Remove the first element (will be a!) myQueue.Dequeue(); } } }
http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/a924097e-3d72-439d-984a-b371cd10bcf4/
由于我们拥有linq,因此非常容易做到:
string[] array = ...; array = array.Skip(1).ToArray();