using System.Collections.Generic;
using System.Threading.Tasks;
public enum CardSuit { Diamonds, Hearts, Spades, Clubs };
public enum CardRank { Ace, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Knave, Queen, King };
public CardSuit Suit { get; private set; }
public CardRank Rank { get; private set; }
public PlayingCard(CardRank rank, CardSuit suit)
private List<CardSuit> _suits = new List<CardSuit>
private List<CardRank> _ranks = new List<CardRank>
private List<PlayingCard> _cards = new List<PlayingCard>(52);
foreach (CardSuit suit in _suits)
foreach (CardRank rank in _ranks)
_cards.Add(new PlayingCard(rank, suit));
public PlayingCard TakeCard()
var card = _cards.Last();
Random rnd = new Random();
for (int i = _cards.Count - 1; i > 0; i--)
public static void Main(string[] args)
PackOfCards myPack = new PackOfCards();
currentCard = myPack.TakeCard();
Console.WriteLine(currentCard.Rank.ToString() + '\t' + currentCard.Suit.ToString());
} while (currentCard != null);