private static void PopulateCardListToCount <T>(int targetCount, List <T> list, UniqueCardPicker <T> cardPicker, Func <T, bool> meetConstraint)
where T : CardShapedObject
{
while (list.Count < targetCount)
{
T currentCard = cardPicker.GetCard(meetConstraint);
if (currentCard == null)
{
break;
}
list.Add(currentCard);
}
}