public bool IsFourOfAKind(Hand hand) { foreach (IGrouping<Rank, Card> grouping in hand.GroupBy(c => c.Rank)) if (grouping.Count() == 4) return true; return false; }
public bool IsFullHouse(Hand hand) { IEnumerable<IGrouping<Rank, Card>> groupings = hand.GroupBy(c => c.Rank); return(groupings.Count() == 2 && (groupings.ElementAt(0).Count() == 2 || groupings.ElementAt(0).Count() == 3)); }
public bool IsTwoPair(Hand hand) { IEnumerable<IGrouping<Rank, Card>> groupings = hand.GroupBy(c => c.Rank); return ((from g in groupings where g.Count() == 2 select g).Count() == 2); }