private IList<CardType> GetTypesWithNCards(int[] cardTypeCounts, int n) { var pairs = new List<CardType>(); for (var i = cardTypeCounts.Length - 1; i >= 0; i--) { if (cardTypeCounts[i] == n) { pairs.Add((CardType)i); } } return pairs; }