private ICollection<CardType> GetStraightFlushCards(int[] cardSuitCounts, IEnumerable<Card> cards)
{
var straightFlushCardTypes = new List<CardType>();
for (var i = 0; i < cardSuitCounts.Length; i++)
{
if (cardSuitCounts[i] < ComparableCards)
{
continue;
}
var cardTypeCounts = new int[(int)CardType.Ace + 1];
foreach (var card in cards)
{
if (card.Suit == (CardSuit)i)
{
cardTypeCounts[(int)card.Type]++;
}
}
var bestStraight = this.GetStraightCards(cardTypeCounts);
if (bestStraight != null)
{
straightFlushCardTypes.AddRange(bestStraight);
}
}
return straightFlushCardTypes;
}