public override bool Equals(object obj) { Game game = obj as Game; if (game == null) { return(false); } bool b = GameName == game.GameName && Publisher == game.Publisher && Country == game.Country && PublishDate.Equals(game.PublishDate); if (game.GenreList == null || !GenreList.Count.Equals(game.GenreList.Count)) { return(false); } if (b) { List <Genre> list1 = new List <Genre>(GenreList.OrderBy(i => i.IDGenre)); List <Genre> list2 = new List <Genre>(game.GenreList.OrderBy(i => i.IDGenre)); for (int i = 0; i < list1.Count(); i++) { b = list1[i].IDGenre.Equals(list2[i].IDGenre); } } else { return(false); } return(b); }