public object Clone() { return(new GameStageInfo { CurrentPlayer = (PlayerInfo)CurrentPlayer?.Clone(), ExpectedActionType = ExpectedActionType, CurrentBetActionList = CurrentBetActionList ?.Select(a => (BetAction)a?.Clone()).ToList(), CurrentBetResult = (BetResult)CurrentBetResult?.Clone(), StickRoundInfoList = StickRoundInfoList ?.Select(s => (StickRoundInfo)s?.Clone()).ToList(), CurrentPlayResult = (PlayResult)CurrentPlayResult?.Clone(), RoundResultList = RoundResultList ?.Select(r => (RoundResult)r?.Clone()).ToList(), GameResult = (GameResult)GameResult?.Clone() }); }