I guess it is stupid question but if You can take a look
Here is my method
public Tuple CheckRoyalFlush() { List<Honours> flush = new List<Honours>() { Honours.Ace, Honours.King, Honours.Queen, Honours.Jack, Honours.Ten }; if (RoyalFlushJokerHelper(honoursOnTheScreen, flush) || ContainsAllItems(honoursOnTheScreen, flush)) { Suits suit = cardsOnTheScreen.ElementAt(0).GetSuit(); foreach (Card card in cardsOnTheScreen.Skip(1)) { if (card.GetSuit() != suit) { if (card.GetHonour() == Honours.Joker) continue; else return new Tuple(false, null); } } return new Tuple(true, new List<int> { 0, 1, 2, 3, 4 }); } The thing is when I am checking my "If" I get to the first method " RoyalFlushJokerHelper" and there I am deleting all my 5 items from flush list.
Then the problem is when i step into ContainAllItems method my flush list is empty.
I am not passing it by reference so why does the first method changes my original list ?