List Index Out Of Bounds
<p>I am trying to retrieve one value from a combo box and place it into another combo box by using lists.</p>

<p>I successfully remove the value from the list, and implement it into the other list fine. But when I do this my list capacities malfunction and I get index out of bounds errors.</p>

<p>Scenario:</p>

<blockquote>
  <p>List Letter Selected: B</p>
  
  <p>'Left Shift Button Pressed'</p>
  
  <p>'B' Removed from Letters List</p>
  
  <p>'B' Added to Numbers List</p>
  
  <p>Print Out Values</p>
  
  <p>Error: "Index was out of range. Must be non-negative and less than the size of collection</p>
  
  <p>Line 66: Console.WriteLine("Numbers: " + numbers[i] + "\tIteration: " + i);</p>
  
  <p>Number List Capacity: 8, Letters List Capacity: 4.</p>
  
  <p>Number List: 1, 2, 3, 4, B. Letters List: A, C, D</p>
</blockquote>

<p>CODE:</p>

<pre><code>public partial class Form1 : Form
{
    public List&lt;string&gt; letters = new List&lt;string&gt;();
    public List&lt;string&gt; numbers = new List&lt;string&gt;();

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        InitialiseLists();
        LoadListsIntoCombo();
    }

    public void InitialiseLists()
    {
        /*
         * Add Letter Data
         */
        letters.Add("A");
        letters.Add("B");
        letters.Add("C");
        letters.Add("D");

        /*
         * Add Number Data
         */
        numbers.Add("1");
        numbers.Add("2");
        numbers.Add("3");
        numbers.Add("4");

    }

    public void LoadListsIntoCombo()
    {

        comboLetter.DataSource = letters;
        comboNumber.DataSource = numbers;

    }

    public void PrintList()
    {
        /*
         * Print Lists To Console
         */
        for (int i = 0; i &lt; numbers.Capacity; i++)
        {
            Console.WriteLine("NUM CAPACITY: " + numbers.Capacity);
            Console.WriteLine("Numbers: " + numbers[i] + "\tIteration: " + i);
        }

        for (int i = 0; i &lt; letters.Capacity; i++)
        {
            Console.WriteLine("LET CAPACITY: " + letters.Capacity);
            Console.WriteLine("Letters : " + letters[i] + "\tIteration: " + i);

        }

    }


    private void cmdLeft_Click(object sender, EventArgs e)
    {

        AddLetterToNumber(GetLetter());
        RemoveLetter(GetLetter());

    }

    public void RemoveLetter(string value)
    {
        letters.Remove(value);
    }

    public void AddLetterToNumber(string value)
    {
        numbers.Add(value);
    }

    public string GetLetter()
    {
        string letter = comboLetter.SelectedItem.ToString();
        return letter;
    }

    public int GetLetterIndex()
    {
        int letterIndex = comboLetter.SelectedIndex;

        return letterIndex;
    }

    private void cmdRight_Click(object sender, EventArgs e)
    {
        PrintList();
    }

}

    }
</code></pre>

<p>Many thanks for any help you can provide.</p>
