Palindrome Checking in C#


A Palindromic number or string can be read in both directions. It's a form of word puzzle. A numeral Palindrome is a number which remains the same when its digits are reversed. The term palindromic is derived from Palindrome, which refers to a word whose spelling is unchanged when its letters are reversed.

Sample Application to Check Palindromic Features

To demonstrate Palindromic features, let's create a .NET console application. Add the following namespaces in the Program.cs file.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Following is the source code of the C# CheckPalindrome function to reverse a number and check if it is a Palindrome. The C# program is successfully compiled and executed with Microsoft Visual Studio. It first reverses a number; then, it checks if the given number and reversed numbers are equal. If they are equal, it's a Palindrome.

static void CheckPalindrome()

   int number, remind, sum = 0, temp;
   Console.WriteLine("\n >>>> Purpose of this Program <<<< ");
   Console.WriteLine("\n >>>> To Find a Number is a Palindrome
      or not <<<< ");
   Console.Write("\n Please Enter a number: ");
   number = Convert.ToInt32(Console.ReadLine());
   temp = number;
   while (number > 0)
      remind = number % 10;
      number = number / 10;
      sum = sum * 10 + remind;

   Console.WriteLine("\n The Reversed Number of the Original Number
      is: {0} \n", sum);
   if (temp == sum)
      Console.WriteLine("\n Your Number is a Palindrome \n\n");
      Console.WriteLine("\n Your Number is not a Palindrome \n\n");

Similar to Palindrome number checking, we also can check if a string is a Palindrome or not. For that, you first need to reverse the string.

After that, use the equals() method or '==' to match the original string with the reversed version. If the result is true, that would mean the string is a Palindrome.

To check a Palindrome string, I have written the following StringPalindrome function.

static void StringPalindrome()
   string s, revs = "";
   Console.WriteLine("\n >>>> Purpose of this Program <<<< ");
   Console.WriteLine("\n >>>> To Find if a String is a Palindrome
      or not <<<< ");
   Console.WriteLine("\n Please Enter a string: ");
   s = Console.ReadLine();
   s = s.Trim();
   for (int i = s.Length - 1; i >= 0; i--)
      revs += s[i].ToString();
   if (revs == s)
      Console.WriteLine("String is a Palindrome \n You have Entered
         the Following String {0} \n and the reverse string is {1}",
         s, revs);
      Console.WriteLine("String is not a Palindrome \n You have
         Entered the Following String {0} \n and the reverse string
         is {1}", s, revs);

Finally, from the Main() method, both the CheckPalindrome and StringPalindrome functions are called.

namespace ProjectPalindrome
   class Program
      static void Main(string[] args)


In this article, I have coded couple of simple C# methods to test for Palindromes. Many Palindromes are composed of multiple words and have spaces and punctuation. These can all be tested.

I hope you enjoyed reading the article. That's all for today; happy reading!

This article was originally published on January 2nd, 2019

About the Author

Tapas Pal

I am working in Microsoft Technology for last 15 years and presently working with Cognizant Technology Solutions, India as Senior Architect. I have completed TOGAF 9.1,Microsoft Certification on .NET 1.1 , .NET 2.0, SQL Server 2005 and Sharepoint. Please visit my Blog - http://tapas-pal.blogspot.com/

Related Articles

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date