public class MessageBox { private Stack messages = new Stack(); public int MessageCount { get { return messages.Count; } } public void AddMessage(string message) { messages.Push(message); } public int FindMessage(string message) { for (var i = 0; i < messages.Count(); i++) { if (messages.ElementAt(i) == message) { return i; } } return -1; } public void RemoveMessage(string message) { var temp = new Stack(); var i = FindMessage(message); if (i > -1) { for (var j = (messages.Count - 1); j >= 0; j--) { if (j != i ) { var msg = messages.ElementAt(j); temp.Push(msg); } } messages.Clear(); messages = temp; } } public override string ToString() { var sb = new System.Text.StringBuilder(); foreach(var s in messages) { sb.Append(s); sb.Append('\n'); } return sb.ToString(); } }