如何使用C#获取堆栈中的当前索引

时间:2012-02-20 02:06:23

标签: c#

我已经在C#中将值插入到Stack中。我需要mystack [0],mystack [1]的值。怎么做。我已经尝试了堆栈中的方法,但请给我一些代码,我将尝试它

2 个答案:

答案 0 :(得分:4)

您可以使用ElementAt()

Stack<Int32> foo = new Stack<Int32>();
foo.Push(5); //element 1
foo.Push(1); //element 0
int val = foo.ElementAt(1); //This is 5

由于堆栈是最后一次出局,如果你想获得你添加到堆栈的第一项,你可以使用:

int val = foo.ElementAt(foo.Count - 1);

请记住,ElementAt是一个LINQ扩展方法,它将堆栈枚举为数组并返回所需的索引。对于大型堆栈或性能至关重要的地方,您可能需要考虑使用其他数据结构,例如List<T>

答案 1 :(得分:1)

如果您需要索引项目,那么List<T>可能是更合适的数据结构吗?

堆栈旨在仅允许您获取最近插入的项目。有一些方法可以绕过这种行为,但是如果你需要索引的项目肯定会更好:

var myList = new List<Int32>();
myList.Add(100);
myList.Add(200);
myList.Add(300);
myList.Add(400);
Console.Out.WriteLine(myList[2]); // Prints "300"