Thursday, November 8, 2018

C# program to remove duplicates

Unique name print করার জন্য একটি program লিখব, যেখানে কোন duplicate entries থাকবে না। উদাহরণ সরূপ নিচের Input String এর কথা চিন্তা করি, এখানে Rob এবং Able নাম দুইটা দুইবার আছে, আমদের program এর কাজ হল এই একাধিকবার থাকা নাম গুলো কে eliminate করে দিয়ে প্রতিটি নামকে একবার করে দেখানো। সহজ কথায় একটা নাম output string এ একবারের বেশি থাকতে পারবে না। Program টা এরকম হবে - 


Input String = "Rob;Mike;Able;Sara;Rob;Peter;Able;"
Output String = "Rob;Mike;Able;Sara;Peter;"


using System;
using System.Linq;
using System.Text;

namespace MainPrograms
{
    public class Program
    {
        public static void Main(string[] args)
        {
            // Prompt the user to enter the list of user names
            Console.WriteLine("Please enter the name list separated by semicolon");

            // Read the user name list from the console
            string InputedNameString = Console.ReadLine();

            // Sampe list of user names that can be used as an input
            // strUserNames = "Rob;Mike;Able;Sara;Rob;Peter;Able";


            // Split the string into a string array based on semi colon
            string[] InputedNameListArray = InputedNameString.Split(';');

            // Use the Distinct() LINQ function to remove duplicates
            string[] DistinctNameListArray = InputedNameListArray.Distinct().ToArray();

            // Using StringBuilder to concatenate strings is more efficient
            // than using immutable string objects for better performance
            StringBuilder DistinctNameList = new StringBuilder();

            // Build the string from unique names appending semi colon
            foreach (var item in DistinctNameListArray)
            {
                DistinctNameList.Append(item+";");
            }
            // Remove the extra semi colon in the end
            string OutputedNameList = DistinctNameList.
                            Remove(DistinctNameList.ToString().LastIndexOf(';'),1).ToString();

            // Finally print the unique names
            Console.WriteLine("{0}", OutputedNameList);
            Console.ReadKey();
        }
    }
}

No comments:

Post a Comment