定义
语法格式:
一:初始化 System.Collections.Generic.Stack`1类的新实例,该实例为空并且具有默认初始容量。
Stack<数据类型> 标识符 = new Stack<数据类型>();
二:新实例初始化 System.Collections.Generic.Stack`1 ,该类为空并具有指定的初始容量或默认的初始容量,则两者中较大。
Stack<数据类型> 标识符 = new Stack<数据类型>(指定的初始容量);
三、新实例初始化 System.Collections.Generic.Stack`1 类,该类包含从指定集合复制的元素并具有相同的初始容量与复制的元素数。
Stack<数据类型> 标识符 = new Stack<数据类型>(被复制元素的源集合);
Stack<T> 类的一些常用的属性
public int Count { get; }
官方摘要:获取 System.Collections.Generic.Stack`1 中包含的元素数。
返回结果:System.Collections.Generic.Stack`1 中包含的元素数。
简单理解:获取 Stack 中包含的元素个数。
代码示例:
Stack<string> stack = new Stack<string>();
Console.WriteLine(stack.Count);
--->
0
Stack<T> 类的一些常用的方法
public void Push(T item);
官方摘要:在 System.Collections.Generic.Stack`1 的顶部插入一个对象。
参数说明:
- item:要推入到 System.Collections.Generic.Stack`1 中的对象。 对于引用类型,该值可以为 null。
简单理解:顶部添加值。
代码示例:
Stack<string> stack = new Stack<string>();
stack.Push("aa");
stack.Push("bb");
stack.Push("cc");
foreach (var item in stack)
{
Console.WriteLine(item);
}
--->
cc
bb
aa
public void Clear();
官方摘要:从 System.Collections.Generic.Stack`1 中移除所有对象。
简单理解:移除所有的元素。
代码示例:
Stack<string> stack = new Stack<string>();
stack.Push("aa");
stack.Push("bb");
stack.Clear();
stack.Push("cc");
foreach (var item in stack)
{
Console.WriteLine(item);
}
--->
cc
public bool Contains(T item);
官方摘要:确定某元素是否在 System.Collections.Generic.Stack`1中。
参数说明:
- item:要在System.Collections.Generic.Stack`1 中定位的对象。 对于引用类型,该值可以为 null。
返回结果:如果在System.Collections.Generic.Stack`1 中找到 obj,则为 true;否则为 false。
简单理解:判断某个元素是否在 Stack 中。
代码示例:
Stack<string> stack = new Stack<string>();
stack.Push("aa");
stack.Push("bb");
stack.Push("cc");
Console.WriteLine(stack.Contains("aa"));
--->
True
public void CopyTo(T[] array, int arrayIndex);
官方摘要:副本System.Collections.Generic.Stack`1 到现有一维 System.Array, 指定的数组索引处开始。
参数说明:
- array:一维 System.Array,是从 System.Collections.Generic.Stack`1 复制的元素的目标。 System.Array 必须具有从零开始的索引。
- arrayIndex:array 中从零开始的索引,从此处开始复制。
简单理解:将元素复制到一维数组。
代码示例:
Stack<string> stack = new Stack<string>();
stack.Push("aa");
stack.Push("bb");
stack.Push("cc");
string[] arr = new object[3];
stack.CopyTo(arr,0);
foreach (var item in arr)
{
Console.WriteLine(item);
}
--->
cc
bb
aa
public T Peek();
官方摘要:返回的对象顶部的 System.Collections.Generic.Stack`1 而不删除它。
返回结果:System.Collections.Generic.Stack`1 顶部的对象System.Object
简单理解:获取顶部元素,但不移除它。
代码示例:
Stack<string> stack = new Stack<string>();
stack.Push("aa");
stack.Push("bb");
stack.Push("cc");
Console.WriteLine(stack.Peek());
foreach (var item in stack)
{
Console.WriteLine(item);
}
--->
cc
cc
bb
aa
public T Pop();
官方摘要:删除并返回System.Collections.Generic.Stack`1顶部的对象。
返回结果:从 System.Collections.Generic.Stack`1顶部删除的 System.Object。
简单理解:移除并返回在 Stack 的顶部的对象。
代码示例:
Stack<string> stack = new Stack<string>();
stack.Push("aa");
stack.Push("bb");
stack.Push("cc");
Console.WriteLine(stack.Pop());
foreach (var item in stack)
{
Console.WriteLine(item);
}
--->
cc
bb
aa
public T[] ToArray();
官方摘要:副本 System.Collections.Generic.Stack`1 到新数组。
返回结果:包含System.Collections.Generic.Stack`1的元素副本的新数组。
简单理解:复制 Stack 到一个新的数组中。
代码示例:
Stack<string> stack = new Stack<string>();
stack.Push("aa");
stack.Push("bb");
stack.Push("cc");
string[] arr = stack.ToArray();
foreach (var item in arr)
{
Console.WriteLine(item);
}
--->
cc
bb
aa