public static bool isValidCard(String cc) { cc = cc.Replace(" ", string.Empty); // Check if cc flag is valid if (!CreditCardValidator.isValidFlag(cc)) { return(false); } int sum = 0; char[] reverseCC = cc.ToCharArray(); Array.Reverse(reverseCC); for (int i = 0; i < reverseCC.Length; i++) { if (i % 2 == 0) { sum += Convert.ToInt16(reverseCC[i].ToString()); } else { int newValue = (int)(Convert.ToInt16((reverseCC[i].ToString())) * 2); sum += Convert.ToInt16((newValue > 9 ? (newValue - 9) : newValue).ToString()); } } if ((sum % 10) == 0) { return(true); } else { return(false); } }