I know stack is best and easiest way, yet could it be possible to obtain the last element in a queue without having to dequeue anything?
You could use LINQ's Enumerable.Last() method (where myQueue is the name of your Queue):
var lastElement = myQueue.Last();
Although as others have mentioned, if you find yourself needing to do this often, you probably want to think about using a different data structure. For example, a List:
var myElement = myList[myList.Length - 1];