public void MakeAside(Player player, int nbCards) { DealingRules dr = new DealingRules(); IEnumerable <Card> cardsInHand = player.Hand.Cast <Card>(); var possibleAsideCards = cardsInHand.Where(x => dr.CardAllowedInPlayerAside(x.IsTrumper(), x.IsOudler(), x.Points())).ToList(); if (possibleAsideCards.Count() == 0) { throw new NotSupportedException("Cannot make aside without possible cards"); } var playerChoice = AskPlayerCards(player, possibleAsideCards, nbCards); player.WonHands.AddRange(playerChoice); playerChoice.ForEach(x => player.Hand.Remove(x)); }