Сравнение объектов в списках

Задача: есть два списка объектов одного типа. Объекты могут повторяться. Нужно взять из второго списка только те объекты, которых нет в первом.

var newArticles = allArticles.Except(oldArticles, new ArticleEqualityComparer());

ArticleEqualityComparer реализован по примеру с MSDN:
http://msdn.microsoft.com/ru-ru/library/ms132151.aspx

class BoxEqualityComparer : IEqualityComparer
{

    public bool Equals(Box b1, Box b2)
    {
        if (b1.Height == b2.Height & b1.Length == b2.Length
                            & b1.Width == b2.Width)
        {
            return true;
        }
        else
        {
            return false;
        }
    }


    public int GetHashCode(Box bx)
    {
        int hCode = bx.Height ^ bx.Length ^ bx.Width;
        return hCode.GetHashCode();
    }

}

Continue Reading →