//problema: obtinerea primului (celui mai de jos) element dintr-un stack, FARA a afecta valorile din stack //rezolvare: am implementat un extension method pentru Stack<> static void Main(string[] args) { Stack <int> myStack = new Stack <int>(); myStack.Push(10); myStack.Push(20); myStack.Push(30); //apelez metoda extinsa pe care am implementat-o pentru Stack<> Console.WriteLine(myStack.getFirstElement()); //obtinem valoarea "cea mai de jos" din stiva si stack-ul nu este afectat Console.WriteLine(myStack.Pop()); //obtinem, asa cum e normal, valoarea cea mai de sus din stiva deoarece nu este afecatata de operatiunea precedenta }