public virtual Card GenerateCardFromString(String card)
{
// This should never be different than 2
Trace.Assert(card.Length == 2, "A string representation of a card was found to be of invalid length: " + card.Length + " instead of 2");
// Uppercase to simplify checks
String cardValues = card.ToUpper();
// Extract components
Char faceComponent = cardValues[0];
Char suitComponent = cardValues[1];
CardFace face = Card.CharToCardFace(faceComponent);
CardSuit suit = Card.CharToCardSuit(suitComponent);
Card result = new Card(face, suit);
return result;
}