public Deck Remove(FaceOrNumber faceOrNumber) { var b = ImmutableList.CreateBuilder <Card>(); b.AddRange(Cards); var removeThese = b.Where(x => x.FaceOrNumber == faceOrNumber).ToList(); foreach (var c in removeThese) { b.Remove(c); } return(new Deck(this, b.ToImmutable())); }
public Deck Add(FaceOrNumber faceOrNumber, params Suit[] suits) { var b = ImmutableList.CreateBuilder <Card>(); b.AddRange(Cards); foreach (var s in suits) { var c = new Card { FaceOrNumber = faceOrNumber, Suit = s }; b.Add(c); } return(new Deck(this, b.ToImmutable())); }