c# List<T>.Contains() Method Returns False
<p>In the code block below I would expect dictCars to contain:
{ Chevy:Camaro, Dodge:Charger }</p>

<p>But, dictCars comes back empty.  Because this line returns false each time it's called:</p>

<pre><code>if(myCars.Contains(new Car(Convert.ToInt64(strCar.Split(':')[1]),strCar.Split(':')[2])))
</code></pre>

<p>Code block:</p>

<pre><code>public class Car
{
    public long CarID { get; set; }

    public string CarName { get; set; }

    public Car(long CarID, string CarName)
    {
        this.CarID = CarID;
        this.CarName = CarName;
    }
}

List&lt;Car&gt; myCars = new List&lt;Car&gt;();
myCars.Add(new Car(0,"Pinto"));
myCars.Add(new Car(2,"Camaro"));
myCars.Add(new Car(3,"Charger"));

Dictionary&lt;string, string&gt; dictCars = new Dictionary&lt;string, string&gt;();
string strCars = "Ford:1:Mustang,Chevy:2:Camaro,Dodge:3:Charger";
String[] arrCars = strCars.Split(',');
foreach (string strCar in arrCars)
{
    if(myCars.Contains(new Car(Convert.ToInt64(strCar.Split(':')[1]),strCar.Split(':')[2])))
    {
        if (!dictCars.ContainsKey(strCar.Split(':')[0]))
        {
            dictCars.Add(strCar.Split(':')[0], strCar.Split(':')[2]);
        }
    }
}

return dictCars;
</code></pre>

<p><strong>Question:  What am I doing wrong with my List.Contains implementation?</strong></p>

<p>Thanks in advance!</p>
