Contains() returns false even though it should return true
<p>I am currently trying to check if some list of mine contains an object.
The list is a list of of an object which is made up of a struct which contain 2 fields.</p>

<p>I am trying to run this small code:</p>

<pre><code>if(m_EatingMoves.Contains(i_Move))
{
  ....
}
</code></pre>

<p>But the expression will return false even though I can <strong>surely</strong> see on debug that the Move i want is inside the *m_EatingMove* list, I thought that the problem might be that I don't have an override for Equals in my struct so I found an implementation here on StackOverFlow, but the expression still returns false. Any Idea besides implementing my own Contains() ?</p>

<p>This is the struct:</p>

<pre><code>    public struct Cell
    {
        public int Row;
        public int Col;

        public Cell(int i_Row, int i_Col)
        {
            this.Row = i_Row;
            this.Col = i_Col;
        }

        public override bool Equals(object obj)
        {
            if (!(obj is Cell))
                return false;

            Cell cell = (Cell)obj;
            return cell.Col == Col &amp;&amp; cell.Row == Row;
        }
    }
</code></pre>

<p>Now I have another object which is made up of the above struct:</p>

<pre><code>    public class Move
    {
        private Board.Cell m_Source;
        private Board.Cell m_Destination;

        public Move(Board.Cell i_Source, Board.Cell i_Destination)
        {
            m_Source = i_Source;
            m_Destination = i_Destination;
        }
....(Properties, etc..)
</code></pre>

<p>Finally we have the list which is initialized by the constructor</p>

<pre><code>private List&lt;Move&gt; m_EatingMoves
</code></pre>
