c# 3.5 と linq を使用して簡単なプログラムを作成します。
授業がある
public class Product
{
    public Product()
    {
    }
    public int RoleId { get; set; }
    public int ObjectId { get; set; }
    public bool Read { get; set; }
    public override bool Equals(object obj)
    {
        return Equals((Product) obj);
    }
    public bool Equals(Product other)
    {
        return ObjectId == other.ObjectId && Read == other.Read;
    }
}
リストを比較しようとしています。
List<Product> products = new List<Product>() 
{ 
    new Product { RoleId = 1, ObjectId = 2, Read = false }, 
    new Product { RoleId = 2, ObjectId = 1, Read = false }, 
    new Product { RoleId = 1, ObjectId = 1, Read = true } 
};
var groupedCustomerList = products.GroupBy(u => u.RoleId)
                                  .Select(grp => grp.ToList()).ToList();
var firstGroup = groupedCustomerList.ElementAt(0);
List<Product> productsListSearch = new List<Product>() 
{ 
    new Product {ObjectId = 1, Read = true }, 
    new Product {ObjectId = 2, Read = false } 
};
var result= productsListSearch.SequenceEqual(firstGroup);
結果が正しくないのはなぜですか? アイテムを並べ替える必要がありますか?