C#集合 Stack 中常用的方法和属性

C# Stack (栈)是常见的数据结构之一,栈是一种先进后出的结构,即元素从栈的尾部插入,从栈的尾部移除,类似于日常生活中搬家的时候装车,先装上车的东西要后拿下来。

Stack 类提供了 3 种构造方法,如下表所示。

构造方法作用
Stack()使用初始容量创建 Stack 的对象
Stack(ICollection)创建 Stack 的实例,该实例包含从指定实例中复制的元素,并且初始容量与复制的元素个数、增长因子相同
Stack(int capacity)创建 Stack 的实例,并设置其初始容量

集合中的 Stack 类模拟了栈操作,提供了栈中常用的方法和属性。

一、常用方法

1、Stack.Push(Object)方法

在 Stack 的顶部插入一个对象。

Stack test = new Stack();
test.Push(123);
test.Push(234);
test.Push(345);
test.Push(456);
foreach (var v in test)
{
	Console.WriteLine(v);//先进后出
}

2、Stack.Peek 方法

用于获取栈顶元素的值,但不移除栈顶元素的值

Stack test = new Stack();
test.Push(123);
test.Push(234);
test.Push(345);
test.Push(456);
test.Peek();
Console.WriteLine("本次返回的值是:{0}",test.Peek());
foreach(var v in test)
{
	Console.WriteLine(v);
}

3、Stack.Pop() 方法

用于获取栈顶元素的值,并移除栈顶元素

Stack test = new Stack();
test.Push(123);
test.Push(234);
test.Push(345);
test.Push(456);
foreach(var v in test)
{
	Console.WriteLine(v);
}
test.Pop();
Console.WriteLine("Pop后遍历的结果:");
foreach(var v in test)
{
	Console.WriteLine(v);
}

4、Clear 方法

从 Stack 中移除所有的元素。

Stack test = new Stack();
test.Push(123);
test.Push(234);
test.Push(345);
test.Push(456);
foreach(var v in test)
{
	Console.WriteLine(v);
}
test.Clear();
Console.WriteLine("清除后的遍历结果:")
foreach(var v in test)
{
	Console.WriteLine(v);
}

5、Stack.Contains(Object) 方法

确定某元素是否在 Stack 中。

public virtual bool Contains (object obj);

Stack test = new Stack();
test.Push(123);
test.Push(234);
test.Push(345);
test.Push(456);
bool answer = test.Contains(345);
Console.WriteLine(answer);

6、Stack.CopyTo(Array, Int32) 方法

从指定数组索引开始将 Stack 复制到现有一维 Array 中。

public virtual void CopyTo (Array array, int index);

源 Stack 中的元素个数小于等于从 index 到目标 array 末尾之间的可用空间。

Stack test = new Stack();
test.Push(123);
test.Push(234);
test.Push(345);
test.Push(456);
int[] nums = new int[]{234,645,765,876,45,3423};
test.CopyTo(nums,2);
foreach(var v in nums)
{
	Console.WriteLine(v);
}

7、Stack.ToArray 方法

将 Stack 复制到新数组中。

Stack test = new Stack();
test.Push(123);
test.Push(234);
test.Push(345);
test.Push(456);
var myA = test.ToArray();
foreach (var v in myA)
{
	Console.WriteLine(v);
}
二、常用属性

Count 属性

获取 Stack 中包含的元素数。

Stack test = new Stack();
test.Push(123);
test.Push(234);
test.Push(345);
test.Push(456);
Console.WriteLine(test.Count);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值