Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove a duplicate number from an array?

Tags:

c#

Hi I'm working on this simple program that takes 5 numbers from user as long as the numbers are greater than 10 and less than 100. My goal is to remove duplicates numbers an ONLY show the NOT DUPLICATE numbers. Let's say if I enter 23 , 23, 40, 56 , 37 I should only output 40 , 56 , 37. Please help me on this. Thanks in advance. Here's my code:

    static void Main(string[] args)
    {
        int[] arr = new int[5];  
        for (int i = 0; i < 5; i++)
        {
            Console.Write("\nPlease enter a number between 10 and 100: ");
            int number = Convert.ToInt32(Console.ReadLine());
            if (number > 10 && number <= 100)
            {
                arr[i] = number;
            }
            else {
                i--;
            }

        }

        int[] arr2 = arr.Distinct().ToArray(); 
        Console.WriteLine("\n");
        for (int i = 0; i < arr2.Length; i++)
        {
            Console.WriteLine("you entered {0}", arr2[i]);
        }
        Console.ReadLine();
    }

1 Answers

One way is to group the elements based on input number and filter groups whose count is 1

int[] arr2 = arr.GroupBy(e=>e)                  
                .Where(e=>e.Count() ==1)
                .Select(e=>e.Key).ToArray();

Demo

like image 137
Hari Prasad Avatar answered May 25 '26 09:05

Hari Prasad



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!