如何在C#中从ArrayList中删除最上层的元素

3
我有一个ArrayList,想要从中移除单个顶部元素(即堆栈中的POP操作),我已经使用了.Remove()方法,但它不起作用。那么我该如何只移除ArrayList中的单个元素呢?
例如,如果ArrayList包含96、97、98、99、100,则使用.RemoveAt(0)会删除元素96,我想要从ArrayList中移除项100,那么我该如何移除这个顶部项?

2
ArrayList.RemoveAt(0)? - Aron
请展示您尝试使用Remove方法的代码。编辑您的问题并包含该代码。 - Hans Kesting
@Aron 相对于堆栈而言,它指的是最底部的元素而不是最顶部的元素。然而,从帖子中并不清楚“最顶部”实际上意味着什么,除了与堆栈的隐式比较之外,其中添加的最新元素将成为最顶部,即列表的最后一个元素(通常不是第一个)。 - Rune FS
没有使用任何循环..只是尝试了@ColinE的答案 - user1659510
你能看一下我新编辑的回答吗? - r.vengadesh
显示剩余2条评论
5个回答

1
你可以尝试使用 RemoveAt
ArrayList ar = new ArrayList();
ar.Add("Delete");
ar.Add("The");
ar.Add("Top element");

ArrayList.RemoveAt(0);

从ArrayList中删除指定索引处的元素。
还引用“备注”:
在连续元素的集合(例如列表)中,跟随已删除元素的元素将向上移动以占据空出的位置。如果集合是索引的,则移动的元素的索引也会更新。这种行为不适用于将元素在概念上分组到桶中的集合,例如哈希表。

1

试试这个

首先使用下面的代码找到数组长度

int length = yourarray.Length;

接下来将此长度放入removeat中

yourarray.RemoveAt(length - 1);

1
int[] numbers = { 1, 3, 4, 9, 2, 4 };
int numToRemove = 1;
int numIdx = Array.IndexOf(numbers, numToRemove);
List<int> tmp = new List<int>(numbers);
tmp.RemoveAt(numIdx);
numbers = tmp.ToArray();

1
尝试使用 RemoveAt
ArrayList list = …

// remove the last item
list.RemoveAt(list.Count - 1);

1
ArrayList myAL = new ArrayList();
....
myAL.RemoveAt(myAL.Count - 1);

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