public void RemoveObserver(object person) { Queue <Person2> temp = new Queue <Person2>(); Person2 p = person as Person2; while (WaitList.Count > 0 && p != null) { Person2 next = WaitList.Dequeue(); if (next.Equals(p)) { break; } else { temp.Enqueue(p); } } if (temp.Count > 0) { while (WaitList.Count > 0) { temp.Enqueue(WaitList.Dequeue()); } WaitList = temp; } }