public GridStatusInPlayerRange Clone() { var cloned = new GridStatusInPlayerRange(Category); cloned.RankWiseStatus = this.RankWiseStatus; switch (Category) { case GridCategoryEnum.Suited: cloned.SuitedStatus = SuitedStatus.Clone(); break; case GridCategoryEnum.Paired: cloned.PairedStatus = PairedStatus.Clone(); break; case GridCategoryEnum.Offsuit: cloned.OffsuitStatus = OffsuitStatus.Clone(); break; } return(cloned); }