Как реализовать метод GetFirstMessage()? Использовать вторую коллекцию?
public interface IMessenger
{
void SendMessage(string message); //отправить сообщение
string GetLastMessage(); //получить последнее сообщение
string GetFirstMessage(); //получить первое сообщение
}
И сам код:
namespace ConsoleApp1
{
public class Messenger : IMessenger
{
Stack<string> numbers = new Stack<string>();
public void SendMessage(string message)
{
numbers.Push(message);
}
public string GetLastMessage()
{
if (numbers.Count != 0)
return numbers.Pop();
else return null;
}
}
class Program
{
static void Main(string[] args)
{
var messenger = new Messenger();
messenger.SendMessage("Hello");
messenger.SendMessage("world");
messenger.SendMessage("!");
Console.WriteLine(messenger.GetLastMessage());
Console.WriteLine(messenger.GetLastMessage());
Console.WriteLine(messenger.GetLastMessage());
Console.WriteLine(messenger.GetLastMessage());
Console.Read();
}
}
}
В простейшем случае я бы предложил поглядеть на LinkedList
public class Messenger : IMessenger
{
LinkedList<string> numbers = new LinkedList<string>();
public void SendMessage(string message)
{
numbers.AddLast(message);
}
public string GetLastMessage()
{
if (numbers.Count != 0)
{
var last = numbers.Last;
numbers.RemoveLast();
return last.Value;
}
else return null;
}
public string GetFirstMessage()
{
if (numbers.Count != 0)
{
var first = numbers.First;
numbers.RemoveFirst();
return first.Value;
}
else return null;
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости