title: Should I have 2 lists in this C# program or just 1?
body: <p>I have this code and it's about a Roller Coaster, the game has a capacity of 5 people and its duration is about 10 seconds... Every 3 seconds the Park class creates people and add it to a List which is like a queue for the game but what I need it to do is for the people to enter the game as soon as a place is available in the game. The game starts when its full so the first 5 people should get directly into the game and not join the queue. So should I have one list for the queue and another one for the game? What can I modify here to do that and also to tell the user which person got into the game?</p>
  <pre><code>class RollerCoaster
  {
      private Chronometer crono;
      private List&lt;Person&gt; Queue; //Queue
      private int nMax;
      private Output output;
      private int duration; //Game duration
      private UI ui;
  
      public RollerCoaster(int n)
      {
          ui = new UI();
          crono = new Chronometer();
          Queue = new List&lt;Person&gt;();
          this.nMax = n;
          duration = 10; 
          output = ui.output;
  
          crono.Start(1000);
  
          crono.AddAction(Verify);
      }
  
      public void AddPerson(Person p)
      {
          string date = DateTime.Now.ToString();
  
          Queue.Add(p);
  
          output(&quot;Person &quot; + p.id + &quot; joined the queue at &quot; + date);   
      }
  
      public void RemovePersons()
      {
          crono.RemoveAction(DecreaseTime);
  
          duration = 10;
  
          output(&quot;The ride just ended!&quot;);
  
          output(&quot;People got down at &quot; + DateTime.Now.ToString());
      }
  
      public void Verify()
      {
          if (Queue.Count == this.nMax)
          {
              output(&quot;Roller Coaster is finally full!. Starting ride at &quot; + DateTime.Now.ToString());
              Queue = new List&lt;Person&gt;();
              crono.AddAction(DecreaseTime);   
          }
      }
  
      public void DecreaseTime()
      {
          duration--;
          if (duration == 0)
          {
              RemovePersons();
          }
      }
  }
  </code></pre>
  <p>The current output of this code is:</p>
  <blockquote>
  <p>Person 1 joined the queue at 9/4/2017 8:58:21 AM</p>
  <p>Person 2 joined the queue at 9/4/2017 8:58:24 AM</p>
  <p>Person 3 joined the queue at 9/4/2017 8:58:27 AM</p>
  <p>Person 4 joined the queue at 9/4/2017 8:58:30 AM</p>
  <p>Person 5 joined the queue at 9/4/2017 8:58:33 AM</p>
  <p>Roller Coaster is finally full!. Starting ride at 9/4/2017 8:58:34 AM</p>
  <p>Person 6 joined the queue at 9/4/2017 8:58:36 AM</p>
  <p>Person 7 joined the queue at 9/4/2017 8:58:39 AM</p>
  <p>Person 8 joined the queue at 9/4/2017 8:58:42 AM</p>
  <p>The ride just ended! People got down at 9/4/2017 8:58:44 AM</p>
  <p>Person 9 joined the queue at 9/4/2017 8:58:45 AM</p>
  <p>Person 10 joined the queue at 9/4/2017 8:58:48 AM</p>
  <p>Roller Coaster is finally full!. Starting ride at 9/4/2017 8:58:49 AM</p>
  </blockquote>