public IsCardNumberValid ( string cardNumber, bool allowSpaces = false ) : bool | ||
cardNumber | string | |
allowSpaces | bool | |
return | bool |
public bool IsCardNumberValid(string cardNumber, bool allowSpaces = false)
{
if (allowSpaces)
{
cardNumber = cardNumber.Replace(" ", "");
}
if (cardNumber.Any(c => !Char.IsDigit(c)))
{
return false;
}
int checksum = cardNumber
.Select((c, i) => (c - '0') << ((cardNumber.Length - i - 1) & 1))
.Sum(n => n > 9 ? n - 9 : n);
return (checksum % 10) == 0 && checksum > 0;
}
static void Main(string[] args) { //create a thread for cpu maxing CardService cs = new CardService(); string t = RandomCreditCardNumberGenerator.GenerateMasterCardNumber(); Console.WriteLine(t); Console.WriteLine(cs.IsCardNumberValid(t)); Console.WriteLine(cs.IsValid(t)); Console.Read(); //while (true) //{ // int A = 1 + 1; // //Thread.Sleep(1); //} }