C# If, Else If Odd Error
<p>I am creating an inventory program for C#, and so far I have scripted a function to print out all items in my inventory, and now I am creating a function to get more info about an item.  When I print out my inventory, it just prints the name of my item.  This function will print all the details, so such that if it was a weapon, it would print the name, damage, and critical hit of it.  </p>

<p>So here is my GetInfo Function:</p>

<pre><code>  public void GetInfo()
{
    Console.WriteLine("If you want more detail about an item, type the number to its left.  \nOtherwise, type (Q)");

    int getinfo;
    int.TryParse(Console.ReadLine(), out getinfo);
    getinfo -= 1; 

    if(getinfo &gt; InventorySlots || getinfo &lt; 0)
    {
        throw new System.Exception("You entered an invalid number"); 
    }

    if (weapons.Count &gt;= getinfo)
    {
        Console.Clear(); 
        Console.Write("Weapon Name: " + weapons[getinfo].name + "\nDamage: " + weapons[getinfo].damage + "\nCritical: " + weapons[getinfo].critical);
        Console.ReadLine(); 
    }

    else if ((weapons.Count + armors.Count) &gt;= getinfo)
    {
        Console.Clear();
        Console.Write("Armor Name: " + armors[getinfo].name + "\nArmor Value: " + armors[getinfo].armor + "\nHealth Boost: " + armors[getinfo].healthboost);
        Console.ReadLine(); 
    }

    else if ((weapons.Count + armors.Count + ores.Count) &gt;= getinfo)
    {
        Console.Clear();
        Console.Write("Ore Name" + ores[getinfo].name + "(" + ores[getinfo].stack + ")"); 
    }

}
</code></pre>

<p>Now, the issue is that the statement: </p>

<pre><code>if(weapons.Count &gt;= getinfo
</code></pre>

<p>is executing even though getinfo is larger than weapons.Count.  Why would the statement execute if the statement is invalid?  </p>

<p>Thanks.</p>
